목차
I. Index
II. QB_NAME
III. FIRST_ROWS(K)
IV. Full Hint Naming Convention
V.Oracle은 Hint를 무시하지 않는다
Forgotten Hints
Index
실제 정의된 인덱스 컬럼을 사용하여 가독성 향상
index의 변화
- Syntax
기본적인 사용법
/*+ index(table_name index_name */
추가된 사용법
/*+index(table_name table_name(column) */
/*+ index(table_name) */
INDEX TEST
Index_RS의 추가
- Index Full Scan의 비효율적인 실행계획을 세울 때 Index Range Scan으로 유도할 수 있다.
QB_NAME
- 10g에서 추가
- 복잡한 쿼리의 가독성을 높이고 제어를 쉽게 해준다.
View밖에서 뷰안의 쿼리를 제어하기 위한 방법
CBQT에 의해 쿼리블럭이 사라지는 경우는 어떻게 처리하나?
Query Block Name에는 보이지 않아도 Object Alias에는 표시되니 문제없다
QB_NAME확인
FIRST_ROWS(K)
- First_Row는 항상 Rule Base로 동작하며 oracle9i는 Deprecated되었다.
- Oracle 10g R1까지는 100% cost base였다
- Oracle 10g R2부터는 Rule Base logic이 포함되어 Cost가 높더라도 Index를 선호하는 방식으로 동작한다.
오라클의 업그래이드나 패치 시 고민할 부분이 하나 더 추가된 것이다.
Full Hint Naming Convention
Oracle은 Hint를 무시하지 않는다
- 힌트를 사용할 수 없는 환경이었거나
?-- index fast full scan test - Oracle의 구현 상의 한계에 의해
?-- sub query unnesting 시 ORDERED HINT
?-- non unique index의 direct insert