SQL 문장을 만들어 놓고 실행계획을 보면 내가 의도하지 않는 경우가 나올 때가 있다. 분명히 IDX2를 타야 하는데 이 넘의 옵티마이저가 무신 생각인지 IDX1을 타는 것이다. 그럼 너무 곤란한 경우가 생긴다. 즉 모래시계가 너무나 오래 떠 있어서 개발자를 무안하게 하는 것이다.
그런 경우에 INDEX Hint를 사용하면 된다.
SELECT /*+ INDEX (A GEPROTMT_IDX2) */
...
...
...
FROM GEPROTMT A, GEPRODMT B
WHERE
...
...
...
이렇게 사용하면 GEPROTMT란 테이블은 항상 IDX2를 타게 되는 것이다.
물론 데이터가 더 많아지면 어떻게 바귈지 모르기 때문에 향후에는 지금 옵티마이저가 생각한 대로 IDX1을 타야할 지도 모른다.
2009년 4월 16일 목요일
Oracle Hint INDEX
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기