Database - hint
oracle hint
- SQL 튜닝의 핵심 부분으로 일종의 지시 구문이다.
- 직접 최적의 실행 경로를 작성해 주는 것.
- 무분별한 힌트사용은 성능저하를 초래한다.
- 힌트에 오타가 있는경우 무시된다.
OPTIMIZER_MODE
/*+ ALL_ROWS */: Best Throughput- Cost-Based 접근방식으로 ALL_ROWS는 Full Table Scan을 선호하며 CBO(Cost Based Optimization)는 default로 ALL_ROWS를 선택
/*+ FIRST_ROWS */: Best Response Time- 조건에 맞는 첫번째 row를 리턴하기 위한 resuorce 소비를 최소화 시키기 위한 힌트
/*+ CHOOSE */- : Data Dictionary가 해당 테이블에 대해 통계정보를 가지고 있다면 Optimizer는 Cost-Based Approach를 선택하고, 그렇지 않다면 Rule-Based Approach를 선택
/*+ RULE */- Rule Based 접근 방식을 사용하도록 지정
Access Methods
/*+ FULL(table_name) */- full scan
/*+ HASH(table) */- hash scan
/*+ CLUSTER(table_name) */- cluster scan (Clustered Object만 적용)
/*+ HASH_AJ */- NOT IN SubQuery를 HASH Anti-join으로 변형
/*+ HASH_SJ */- Correlated Exists Subquery를 Hash Semi-join으로 변형
/*+ INDEX(table_name index_name) */- 지정된 index를 강제적으로 쓰게끔 지정
/*+ INDEX_ASC(table_name index_name) */- 지정된 index를 오름차순으로 쓰게끔 지정(default)
/*+ INDEX_DESC(table_name index_name) */- : 지정된 index를 내림차순으로 쓰게끔 지정
references
댓글남기기