Daylogs/DB

인덱스를 만들었는데도 검색 시 인덱스를 타지 못하는 경우

ohgyun 2009. 5. 26. 14:29
발생일: 2009.05.26

문제:
검색하고자 하는 컬럼에 인덱스를 추가하였는데도 뚜렷한 성능 향상이 보이지 않는다.
검색 시 인덱스를 타지 못하고 있는 건 아닐까?

해결책:
데브피아의 전문가 컬럼 'INDEX 과연 달면 빠른가?'에 명확하게 설명되어 있다. (IE에서만 보인다.)

요약하자면 아래와 같이 인덱스가 달린 컬럼에 변형이 있을 경우,
인덱스가 정상적으로 적용되지 않는다.
  • 인덱스 컬럼에 변형이 일어난 경우
    • WHERE TO_CHAR(HIREDATE,'YYYYMMDD') = '19980518';
    • WHERE SALARY + 1000 > 100000;
  • 내부적인 변형이 일어난 경우 (EMP_ID를 Number로 인식한다)
    • WHERE EMP_ID = 200383;
  • NULL을 비교하였을 경우
    • WHERE JOB IS NULL;
  • 부정형으로 조건을 기술한 경우
    • WHERE JOB NOT IN ( 'INSTRUCTOR','STAFF');




반응형