분류 | 힌트 | 설명 |
---|---|---|
최적화 목표 | ALL_ROWS FIRST_ROWS(N) | 전체 처리속도 최적화 최초 N건 응답속도 최적화 |
액세스 방식 | FULL INDEX INDEX_DESC INDEX_FFS INDEX_SS | Table Full Scan으로 유도 Index Scan으로 유도 Index를 역순으로 스캔하도록 유도 Index Fast Full Scan으로 유도 Index Skip Scan으로 유도 |
조인순서 | ORDERED LEADING SWAP_JOIN_INPUTS | FROM 절에 나열된 순서대로 조인 LEADING 힌트 괄호에 기술한 순서대로 조인 예) LEADING(T1 T2) 해시 조인 시, BUILD INPUT을 명시적으로 선택 예) SWAP_JOIN_INPUTS(T1) |
조인방식 | USE_NL USE_MERGE USE_HASH NL_SJ MERGE_SJ HASH_SJ | NL 조인으로 유도 소트 머지 조인으로 유도 해시 조인으로 유도 NL 세미조인으로 유도 소트 머지 세미조인으로 유도 해시 세미조인으로 유도 |
서브쿼리 팩토링 | MATERIALIZE INLINE | WITH 문으로 정의한 집합을 물리적으로 생성하도록 유도 예) WITH /+ MATERIALIZE / T AS ( SELECT ...) WITH 문으로 정의한 집합을 물리적으로 생성하지 않고 INLINE 처리하도록 유도 예) WITH /+ INLINE / ( SELECT ...) |
쿼리 변환 | MERGE NO_MERGE UNNEST NO_UNNEST PUSH_PRED NO_PUSH_PRED USE_CONCAT NO_EXPAND | 뷰 머징 유도 뷰머징 방지 서브쿼리 Unnesting 유도 서브쿼리 Unnesting 방지 조인조건 Pushdown 유도 조인조건 Pushdown 방지 OR 또는 IN-List 조건을 OR-Expansion으로 유도 OR 또는 IN-List 조건에 대한 OR-Expansion 방지 |
병렬 처리 | PARALLEL PARALLEL_INDEX PQ_DISTRIBUTE | 테이블 스캔 또는 DML을 병렬방식으로 처리하도록 유도 예)PARALLEL(T1 2) PARALLEL(T2 2) 인덱스 스캔을 병렬방식으로 처리하도록 유도 병렬 수행 시 데이터 분배 방식 결정 예) PQ_DISTRIBUTE(T1 HASH HASH) |
기타 | APPEND DRIVING_SITE PUSH_SUBQ NO_PUSH_SUBQ | Direct-Path Insert 로 유도 DB Link Remote 쿼리에 대한 최적화 및 실행 주체 지정(Local 또는 Remote) 서브쿼리를 가급적 빨리 필터링하도록 유도 서브쿼리를 가급적 늦게 필터링하도록 유도 |
BCHR = (캐시에서 곧바로 찾은 블록 수 / 총 읽은 블록 수) * 100
= ((논리적 I/O - 물리적 I/O) / 논리적 I/O) * 100
= (1 - (물리적 I/O) / (논리적 I/O)) * 100
조시형, 「친절한 SQL 튜닝」, 2018, p 27, 28, 39