Skip to end of metadata
Go to start of metadata

대상 버전

6.1.1 이하 버전.

6.3.1 이상 버전에서는 에러 발생하지 않음.

증상

디스크 테이블에 대해 조인이나 Order by / Group by 등을 사용할 때 다음 에러 발생.

[ERR-311E0 : The estimated size of the index key exceeds the maximum limit.]

원인

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

$ altierr 0x311E0
0x311E0 ( 201184) qpERR_ABORT_QDX_MAXIMUM_KEY_SIZE_EXCEED The estimated size of the index key exceeds the maximum limit.
# *Cause:
# - The estimated size of the index key exceeds the maximum limit.
# *Action:
# - Please reduce the number of key columns.

디스크테이블에 대해 조인이나 Order by / Group by 등을 수행할 때 알티베이스는 내부적으로 Temp Tablespace를 사용합니다. 

Temp Tablespace는 Disk Tablespace이며 8K의 고정된 Page Size를 가지는데, Temp Tablespace를 사용할 때 8K 이상의 레코드를 만들어야 하는 경우 위와 같은 에러가 발생할 수 있습니다.

참고로 Disk Tablespace의 1Page(8K) 크기를 초과하는 경우는 데이터의 길이가 약 3000Bytes 이상인 경우입니다. 

  

# 예제 

  

# 6.3.1 버전 예제

해결 방안

1. TEMP_TBS_MEMORY 힌트를 이용하여 디스크 Temp Tablespace의 1Page(8K) 크기 제약사항을 피할 수 있습니다.

   뿐만 아니라 이 힌트는 temp 영역으로 디스크 대신 메모리 영역을 사용하기 때문에 쿼리 성능 개선에도 효과가 있습니다.

  

2. 6.3.1 이상 버전으로 업그레이드.

    6.3.1 이상 버전에서는 동일 상황에서 에러가 발생하지 않습니다.

참고 사항

  

  • No labels