Table of Contents |
---|
대상 버전
...
모든 버전
본 에러메시지의 경우, 알티베이스 버전에 따라 동일한 오류 원인에 대해 이 에러가 발생할 수도 있고 다른 에러가 발생할 수도 있습니다.
뿐만 아니라 본 에러메시지에 대해 알티베이스 버전에 따라 오류 원인도 다를 수 있습니다.
증상
...
# 예제
Code Block |
---|
create table t (c1 integer, c2 integer);
create table t2 (c1 integer, c2 integer);
create table t3 (c1 integer, c2 integer);
create index t_idx_01 on t(c1, c2);
create index t2_idx_01 on t2(c1, c2);
create index t3_idx_01 on t3(c1, c2);
insert into t select level, level from dual connect by level < 301;
insert into t2 select level, level from dual connect by level < 301;
insert into t3 select level, level from dual connect by level < 301;
alter system set EXECUTE_STMT_MEMORY_MAXIMUM = 1048576;
|
...
# 5.3.3 버전에서 수행 결과
Code Block |
---|
iSQL> select count(*) from (select count(*) from t, t2, t3 group by t.c2, t2.c2, t3.c2);
[ERR-01067 : The allocated memory size of statement exceeds the maximum limit ( Name : Query_Execute, Wanted Memory Size : 1114112, Max size : 1048576 ).]
|
원인
...
다음과 같이 altierr 유틸리티를 이용하여 해당 에러에 대한 설명을 확인할 수 있습니다.
...
알티베이스 서버가 쿼리 수행을 위해 메모리 할당 요청을 했는데 EXECUTE_STMT_MEMORY_MAXIMUM 속성값에 의해 에러를 리턴받은 경우 본 에러가 발생합니다.
해결 방안
...
다음 프로퍼티 값을 늘려주어야 합니다.
Panel |
---|
EXECUTE_STMT_MEMORY_MAXIMUM |
...
1. 쿼리 수행 중 해당 에러가 발생했다면 아래의 SQL문으로 "EXECUTE_STMT_MEMORY_MAXIMUM" 프로퍼티 값을 확인합니다.
Code Block |
---|
iSQL> set vertical on;
iSQL> select name, value1 from v$property where name='EXECUTE_STMT_MEMORY_MAXIMUM';
NAME : EXECUTE_STMT_MEMORY_MAXIMUM
VALUE1 : 1073741824
|
...
다음은 2G로 설정하는 예제입니다.
Code Block |
---|
iSQL> alter system set EXECUTE_STMT_MEMORY_MAXIMUM = 2147483648;
Alter success.
|
...
$ALTIBASE_HOME/conf/altibase.properties 파일에서 해당 프로퍼티의 값을 위와 동일하게 변경해 주세요.
참고
...
...
1. EXECUTE_STMT_MEMORY_MAXIMUM 프로퍼티는 최대값을 지정하는 프로퍼티로, 미리 설정값만큼 메모리를 할당받는 것은 아닙니다.
...
따라서 위 해결방안으로 문제가 해결되지 않는다면 알티베이스 기술지원으로 연락주세요.