Skip to end of metadata
Go to start of metadata

 

 

대상 버전


모든 버전

본 에러메시지의 경우, 알티베이스 버전에 따라 동일한 오류 원인에 대해 이 에러가 발생할 수도 있고 다른 에러가 발생할 수도 있습니다.

뿐만 아니라 본 에러메시지에 대해 알티베이스 버전에 따라 오류 원인도 다를 수 있습니다.

 

 

 

증상


 

# 예제

# 5.5.1 이상 버전에서 수행 결과

# 5.3.3 버전에서 수행 결과

원인


다음과 같이 altierr 유틸리티를 이용하여 해당 에러에 대한 설명을 확인할 수 있습니다.

$ altierr 0x0109D
0x0109D (   4253) idERR_ABORT_InsufficientMemory Insufficient memory 
# *Cause: Insufficient memory
# *Action: Please make sure that the system has enough available memory.

메모리테이블에 대해 order by, group by 등의 쿼리를 수행할 때 temporary 영역을 사용하는데, temporary 영역도 메모리 공간을 사용합니다.

알티베이스 서버가 쿼리 수행을 위해 메모리 할당 요청을 했는데 EXECUTE_STMT_MEMORY_MAXIMUM 속성값에 의해 에러를 리턴받은 경우 본 에러가 발생합니다.

 

 

해결 방안


다음 프로퍼티 값을 늘려주어야 합니다.

EXECUTE_STMT_MEMORY_MAXIMUM
기본값: 1G
단위는 Gigabyte이며 질의 처리 시에 실행 단계에서 메모리를 이 속성값 이상으로 사용할 경우 에러 처리한다.
이 속성값은 불필요한 메모리의 증가를 방지하기 위해 최대값을 설정한다.

   

1. 쿼리 수행 중 해당 에러가 발생했다면 아래의 SQL문으로 "EXECUTE_STMT_MEMORY_MAXIMUM" 프로퍼티 값을 확인합니다.

2. ALTER문으로 해당 프로퍼티 값을 적절히 늘려줍니다. (단위는 byte입니다.)

   다음은 2G로 설정하는 예제입니다.

3. 위 명령어는 수행 이후 서버 전체에 적용되지만 알티베이스를 재구동하면 프로퍼티파일의 설정값으로 적용됩니다.

    따라서 영구적으로 적용을 위해서는 프로퍼티파일에도 해당 프로퍼티 값을 변경해야 합니다.

    $ALTIBASE_HOME/conf/altibase.properties 파일에서 해당 프로퍼티의 값을 위와 동일하게 변경해 주세요. 

 

 

 

참고


 

1. EXECUTE_STMT_MEMORY_MAXIMUM 프로퍼티는 최대값을 지정하는 프로퍼티로, 미리 설정값만큼 메모리를 할당받는 것은 아닙니다.

   그러나 설정값만큼 메모리사용량이 증가할 수 있으므로 설정 시 주의를 요합니다.

   따라서 미리 크게 설정하기보다 경험적으로 적절히 늘려주시기를 권장합니다.

   

2. "Insufficient memory" 에러는 여기에서 설명한 케이스 외에도 다양한 메모리 할당 실패 에러일 수 있습니다.

    따라서 위 해결방안으로 문제가 해결되지 않는다면 알티베이스 기술지원으로 연락주세요.

 

  • No labels