Daylogs/DB
인덱스를 만들었는데도 검색 시 인덱스를 타지 못하는 경우
ohgyun
2009. 5. 26. 14:29
발생일: 2009.05.26
문제:
검색하고자 하는 컬럼에 인덱스를 추가하였는데도 뚜렷한 성능 향상이 보이지 않는다.
검색 시 인덱스를 타지 못하고 있는 건 아닐까?
해결책:
데브피아의 전문가 컬럼 'INDEX 과연 달면 빠른가?'에 명확하게 설명되어 있다. (IE에서만 보인다.)
요약하자면 아래와 같이 인덱스가 달린 컬럼에 변형이 있을 경우,
인덱스가 정상적으로 적용되지 않는다.
문제:
검색하고자 하는 컬럼에 인덱스를 추가하였는데도 뚜렷한 성능 향상이 보이지 않는다.
검색 시 인덱스를 타지 못하고 있는 건 아닐까?
해결책:
데브피아의 전문가 컬럼 'INDEX 과연 달면 빠른가?'에 명확하게 설명되어 있다. (IE에서만 보인다.)
요약하자면 아래와 같이 인덱스가 달린 컬럼에 변형이 있을 경우,
인덱스가 정상적으로 적용되지 않는다.
- 인덱스 컬럼에 변형이 일어난 경우
- WHERE TO_CHAR(HIREDATE,'YYYYMMDD') = '19980518';
- WHERE SALARY + 1000 > 100000;
- WHERE TO_CHAR(HIREDATE,'YYYYMMDD') = '19980518';
- 내부적인 변형이 일어난 경우 (EMP_ID를 Number로 인식한다)
- WHERE EMP_ID = 200383;
- WHERE EMP_ID = 200383;
- NULL을 비교하였을 경우
- WHERE JOB IS NULL;
- WHERE JOB IS NULL;
- 부정형으로 조건을 기술한 경우
- WHERE JOB NOT IN ( 'INSTRUCTOR','STAFF');
반응형