현상
특정 테이블에 대해 SELECT 구문을 수행할 때, Internal Error with condition 'bin->distinct_cnt == 1' 오류가 지속적으로 발생하였으며, 통계 재수집을 통해 일시적으로 문제를 해소했으나 이후 동일한 오류가 반복적으로 발생했습니다.
[COM-1636] [I] Internal Error with condition 'bin->distinct_cnt == 1' (stat.c:786) (pid=2885, sessid=1636, tid=1636, os_thr_id=5386)
SQL
복사
원인
쿼리 수행 중 발생한 internal error의 원인은 컬럼에 잘못된 히스토그램(histogram)이 생성된 데에 있습니다.
히스토그램 정보에 문제가 있는 경우, 기존 코드에서 dynamic sampling을 통해 쿼리를 계속 수행할 수 있도록 처리되어 있습니다.
그러나 이번 경우에는 예외 처리 로직으로 인해 dynamic sampling이 동작하지 않았고, 그로 인해 internal error가 발생하였습니다.
해결
frequency histogram check 로직을 수정한 316045a 패치를 적용합니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
참고
에러가 발생한 테이블 및 인덱스에 대해 통계를 재수집함으로써, 문제를 일시적으로 우회할 수 있습니다.