주요 조건절 컬럼으로 구성된 인덱스는 온라인 SQL 최적화에 가장 기본적이고 필수적인 도구이다. 만약, 인덱스 액세스 범위를 크게 줄일 수 있는 어떤 컬럼 조건절이 인덱스 filter 조건이라면, 인덱스를 신규 생성하거나, 현 인덱스에 컬럼을 추가하여 인덱스 access 조건이 되도록 하면 액세스 량이 크게 감소한다.
개선 전
- (문제 상황) 결과 건수에 비해 거래요약_IX01 인덱스 액세스 량이 과다하고, 처리에 많은 시간이 소요됨
- (문제 원인) 인덱스 정보를 확인해 보면, 인덱스 액세스 범위를 크게 줄일 수 있는 처리기준일자 조건이 인덱스 filter 조건으로 사용되었음을 알 수 있음(인덱스 구성 상 처리기준일자 앞 컬럼 인 재판매유형코드 조건절이 없기 때문임)
개선 후
- (개선 방안) 처리기준일자 조건절을 인덱스 filter 조건 대신 access 조건이 되도록 하기 위해‚ "INDEX(T 거래요약_IX08)" 힌트를 추가함
- (개선 결과) IX01 인덱스 대신 IX08 인덱스를 사용하면서 거래요약 인덱스 액세스량이 개선 전 57396개 블록에서, 개선 후 2199개 블록으로 크게 감소함
댓글
댓글 쓰기