인덱스 힌트 포맷은 대략 아래와 같다.
select /*+ index(TABLE_NAME INDEX_NAME) */ col1...
이러한 힌트사용에 대해 반드시 지켜야 하는 규칙이 있는데,
정리하면 아래와 같다.
[1] TABLE_NAME 은 반드시 써주어야 한다.
[2] 질의 문장에 테이블 ALIAS를 사용했다면, hint에도 테이블 ALIAS를
사용한다.
[3] 만약 TABLE_NAME이나 테이블 ALIAS의 spelling이 틀렸다면, hint를
사용하지 못하게 된다.
[4] INDEX_NAME 은 반드시 써줄 필요는 없다.
[5] 만일 TABLE_NAME없이 INDEX_NAME만 써주었다면, 힌트를 사용하지
못하게 된다
[6] 만일 TABLE_NAME만 써주었다면, OPTIMIZER는 STATISTICS를 참조하여
가장 적절한 인덱스를 결정한다.
[7] 만일 TABLE_NAME은 정확히 써주었으나, INDEX_NAME은 철자가 틀렸다면
OPTIMIZER는 힌트를 사용하지 못한다.
[8] PARSER/OPTIMIZER는 본래의 질의 문장을 PARSING 중 변형시킨다.
이 변형과정에서 PARSER/OPTIMIZER는 힌트로 준 INDEX를 사용하지 않는
ACCESS PATH를 결정할 수도 있다.
Procedure Sample (0) | 2012.05.22 |
---|---|
DB Link 방법 (0) | 2012.05.21 |
숫자를 한글로 표기하는 Function (0) | 2012.05.21 |
계층형 데이타 Query (0) | 2012.05.18 |
테이블 함수 예제 2 (0) | 2012.05.18 |