Skip to end of metadata
Go to start of metadata

 

 

 

 

개요


질의문 수행 시 발생하는 ERR-11183 (  70019) Insufficient page descriptor area in the temp table. 의 발생 원인과 조치 방법에 관해 설명한다.





버전


  • Altibase 서버 6.3.1 이상
  • Altibase 서버 7.1.0.5.0 까지
    • Altibase 7.1.0.5.1 이상은 BUG-48369 반영으로 이 에러가 발생하지 않는다.





현상


질의문에 디스크 테이블이 사용되고 SORT 또는 HASH 연산 처리가 필요한 질의문을 수행할 때 발생할 수 있다.

 

 



원인


이 에러는 아래의 조건을 만족하는 경우 발생한다.

  • 디스크 임시 테이블스페이스의 최대 크기가 TEMP_MAX_PAGE_COUNT 보다 크게 설정되어 있고
  • TEMP_MAX_PAGE_COUNT를 초과한 크기의 디스크 임시 테이블스페이스가 필요한 질의문을 수행한 경우

Altibase 서버는 디스크 테이블에 대한 질의 처리 과정에서 SORT/HASH 연산이 필요할 경우 빠른 연산을 위해 메모리에 일정 크기를 할당하여 사용한다. 만약 정해진 크기의 메모리를 모두 사용하고 SORT/HASH 연산을 위한 공간이 추가적으로 필요한 경우 디스크 임시 테이블스페이스를 사용한다. 이때 디스크 임시 테이블스페이스로 사용할 수 있는 전체 페이지 수는 TEMP_MAX_PAGE_COUNT 프로퍼티에 의해 정해져 있다.

 

Insufficient page descriptor area in the temp table. 에러 발생 예

디스크 임시 테이블스페이스의 최대 크기가 2G, TEMP_MAX_PAGE_COUNT프로퍼티의 값이 32767(256MB) 로 설정되어 있고,

 

SORT 연산을 위한 크기가 TEMP_MAX_PAGE_COUNT프로퍼티 값 32767(256MB)을 초과하는 질의문을 수행한 경우.


질의문 수행 중 디스크 임시 테이블스페이스 사용량을 조회하면 디스크 임시 테이블스페이스 사용량이 TEMP_MAX_PAGE_COUNT프로퍼티 값과 근사함을 볼 수 있다.
질의문 수행 시 디스크 임시 테이블스페이스 사용량 조회

 


 


조치


디스크 임시 테이블스페이스의 최대값에 맞춰 TEMP_MAX_PAGE_COUNT 프로퍼티의 값을 변경한다.

 

  1. 디스크 임시 테이블스페이스의 최대값 확인

    TEMP_MAX_PAGE_COUNT는 모든 디스크 임시 테이블스페이스가 최대로 사용될 상황을 가정하고 설정해야 한다. 그러므로 아래 질의문으로 Altibase 서버에 생성한 모든 디스크 임시 테이블스페이스의 최대값을 더한 값 을 확인한다.

    디스크 임시 테이블스페이스 최대값 총 합



  2. TEMP_MAX_PAGE_COUNT 프로퍼티 적정값 계산

    TEMP_MAX_PAGE_COUNT 프로퍼티의 단위는 페이지 수로, 값은 아래 수식으로 계산한다.

    TEMP_MAX_PAGE_COUNT = 디스크 임시 테이블스페이스 최대값 총 합 / 8192

    디스크 임시 테이블스페이스 최대값 별 TEMP_MAX_PAGE_COUNT 값

    Icon


    TEMP_MAX_PAGE_COUNT 산정 예시

    디스크 임시 테이블스페이스의 최대값 총 합이 17179869184 byte(16GB) 인 경우, 17179869184 / 8192 = 2097152로 TEMP_MAX_PAGE_COUNT 프로퍼티의 값은 2097152가 된다.

     

    디스크 임시 테이블스페이스의 최대값 총 합 별 TEMP_MAX_PAGE_COUNT 설정 값

      8G 의 경우 TEMP_MAX_PAGE_COUNT = 1048576
    16G 의 경우 TEMP_MAX_PAGE_COUNT = 2096128
    32G 의 경우 TEMP_MAX_PAGE_COUNT = 4192256
    64G 의 경우 TEMP_MAX_PAGE_COUNT = 8388608



  3. TEMP_MAX_PAGE_COUNT 프로퍼티 변경

    TEMP_MAX_PAGE_COUNT는 Altibase 운용 중 시스템 레벨로 변경할 수 있다.

    V$PROPERTY를 조회하여 변경값을 확인한다.

    ALTER SYSTEM 으로 변경한 값이 Altibase 서버 재구동 후에도 반영되도록 Altibase 서버 설정 파일도 변경한다.

       

  4. TEMP_MAX_PAGE_COUNT 프로퍼티 변경 시 고려사항

    아래 세 개 프로퍼티는 TEMP_MAX_PAGE_COUNT에 영향을 받는다.

    • TOTAL_WA_SIZE
    • SORT_AREA_SIZE
    • HASH_AREA_SIZE

    따라서 TEMP_MAX_PAGE_COUNT를 변경하면 이 프로퍼티들도 변경해야한다. 

    각 프로퍼티 별 권고값은 아래와 같다.
    권고값은 기본값 비율에 따라 산정한 것으로 운용 중 해당 프로퍼티의 적정값은 변경될 수 있다.

    • TOTAL_WA_SIZE : TEMP_MAX_PAGE_COUNT의 256배
    • SORT_AREA_SIZE : TEMP_MAX_PAGE_COUNT의 2배
    • HASH_AREA_SIZE : TEMP_MAX_PAGE_COUNT의 8배

    예를들어 TEMP_MAX_PAGE_COUNT = 1048576 로 변경할 경우 각 프로퍼티의 권고값은 아래와 같다.

    • TOTAL_WA_SIZE = 1048576*256 = 268435456 (단위는 바이트)
    • SORT_AREA_SIZE = 1048576*2 = 2097152 (단위는 바이트)
    • HASH_AREA_SIZE = 1048576*8 = 8388608 (단위는 바이트)

    아래 세 프로퍼티도 TEMP_MAX_PAGE_COUNT와 마찬가지로 Altibase 운용 중 시스템 레벨로 변경할 수 있다.

    V$PROPERTY를 조회하여 변경값을 확인한다.

    ALTER SYSTEM 으로 변경한 값이 Altibase 서버 재구동 후에도 반영되도록 Altibase 서버 설정 파일도 변경한다.

       

  5. 프로퍼티 변경 시 영향도 

    TOTAL_WA_SIZE 프로퍼티의 경우 설정 즉시 V$MEMSTAT의 ALLOC_SIZE와 MAX_TOTAL_SIZE가 증가하며 동시에 Altibase 서버 프로세스의 메모리도 증가한다.

    메모리가 증가하는 영역은 Altibase 버전에 따라 다르다. Altibase 7 의 경우 Temp_Memory 영역이 증가하며, Altibase 6.3.1, 6.5.1의 경우 Storage_Disk_Buffer 영역이 증가한다.

    V$MEMSTAT 확인 방법은 아래와 같다.

    Altibase 7 이상
    Altibase 6.3.1, 6.5.1


    Unix/Linux의 경우 ps명령어로 Altibase 서버 프로세스의 메모리 증가 여부를 확인할 수 있다.

    TOTAL_WA_SIZE 변경 직후 확인 시 vsz가 증가하며 sort/hash 연산 발생할 때 rss가 증가한다.

    Linux, SunOS
    HP-UX
    AIX


  • No labels