INDEX 인덱스를 순차적으로 스캔
INDEX_ASC 인덱스를 내림차순으로 스캔
INDEX_DESC 인덱스를 오름차순으로 스캔
INDEX_FFS INDEX FAST FULL SCAN
PARALLEL_INDEX INDEX PARALLEL SCAN
NOPARALLEL_INDEX INDEX PARALLEL SCAN 제한
ADD_EQUALS 여러개의 INDEX MERGE 수행
FULL FULL 스캔
USE_NL NESTED LOOP JOIN 사용
A 테이블의 ROW 인덱싱 후 그 값에 해당하는 B 테이블의 ROW 스캔
테이블 인덱스끼리 inner-outer Loop를 형성하여 Query
데이터가 많을 수록 Loop 방식은 부담
Driving : 찾는 주체, Driven : 비교 대상
USE_NL_WTH_INDEX INDEX를 사용하여 NESTED LOOP JOIN 사용
NL_AJ NESTED LOOP ANTI JOIN 사용
NL_SJ NESTED LOOP SEMI JOIN 사용
USE_MERGE SORT MERGE HOIN 사용
각 테이블을 스캔하여 SORT한 후 서로 MERGE하면서 JOIN
쿼리량이 많은 경우 각각 스캔한 후 같은 키를 갖는 데이터끼리 JOIN
많은 메모리와 디스크 I/O 필요
항상 전체범위처리 수행
대등한 관계이기 때문에 Driving, Driven 구별 없음
MERGE_AJ SORT MERGE ANTI JOIN 사용
MERGE_SJ SORT MERGE SEMI JOIN 사용
USE_HASH HASH JOIN 사용
한 테이블은 데이터가 많고 한 테이블은 데이터가 적을 때 해시 알고리즘에 의해 큰 테이블을 여러 개로 나누어 Query
작은 테이블은 인덱스를 타지 않고 Full Scan이 유리할 때
HASH_AJ HASH ANTIJOIN 사용
HASH_SJ HASH SEMIJOIN 사용
ORDERED FROM절 테이블 순서대로 Driving
만약 ORDERED 다음에 USE_NL이 나오면 ORDERED 적용되어 FROM절 순서 적용
만약 여러 인라인뷰가 있을 때 깊은 인라인뷰부터 Driving하고자 할 때도 사용
LEADING Parameter에 명시된 테이블 순서대로 Driving
DRIVING 해당 테이블을 먼저 DRIVING
APPEND INSERT시 Direct Loading
PARALLEL SELECT, INSERT 시 여러 프로세스로 수행
CACHE 데이터를 메모리에 캐싱
NOCACHE 데이터를 메모리에 캐시하지 않음
PUSH_SUBQ Sub Query 먼저 수행
REWRITE Query Rewrite 수행
NOREWRITE Query Rewrite 수행하지 않음
USE_CONCAT IN절을 Concatenation Access Operation으로 수행
즉 OR 혹은 IN 조건을 별도로 분리하여 각각 실행한 후 이를 연결하는 실행계획
USE_EXPAND IN절을 Concatenation Access Operation으로 수행하지 않음
MERGE View Merging 수행
NO_MERGE View Merging 수행하지 않음