*오라클 힌트 사용예
--------------------------------------------------
select /*+ index( idx_col_1 ) */
name, age, hobby
from member
--------------------------------------------------
*오라클 힌트 사용표
INDEX ACCESS OPERATION 관련 HINT |
HINT |
내용 |
사용법 |
INDEX |
INDEX를 순차적으로 스캔 |
INDEX(TABLE명, INDEX명) |
INDEX_DESC |
INDEX를 역순으로 스캔 |
INDEX_DESC(TABLE명, INDEX명) |
INDEX_FFS |
INDEX FAST FULL SCAN |
INDEX_FFS(TABLE명, INDEX명) |
PARALLEL_INDEX |
INDEX PARALLEL SCAN |
PARALLEL_INDEX(TABLE명,INDEX명) |
NOPARALLEL_INDEX |
INDEX PARALLEL SCAN 제한 |
NOPARALLEL_INDEX(TABLE명,INDEX명) |
AND_EQUALS |
INDEX MERGE 수행 |
AND_EQUALS(INDEX_NAME, INDEX_NAME) |
FULL |
FULL SCAN |
FULL(TALBE명) |
|
|
|
|
|
|
JOIN ACCESS OPERATION 관련 HINT |
HINT |
내용 |
사용법 |
USE_NL |
NESTED LOOP JOIN |
USE_NL(TABLE1, TABLE2) |
USE_MERGE |
SORT MERGE JOIN |
USE_MERGE(TABBLE1, TABLE2) |
USE_HASH |
HASH JOIN |
USE_HASH(TABLE1, TABLE2) |
HASH_AJ |
HASH ANTIJOIN |
HASH_AJ(TABLE1, TABLE2) |
HASH_SJ |
HASH SEMIJOIN |
HASH_SJ(TABLE1, TABLE2) |
NL_AJ |
NESTED LOOP ANTI JOIN |
NL_AJ(TABLE1, TABLE2) |
NL_SJ |
NESTED LOOP SEMIJOIN |
NL_SJ(TABLE1, TABLE2) |
MERGE_AJ |
SORT MERGE ANTIJOIN |
MERGE_AJ(TABLE1, TABLE2) |
MERGE_SJ |
SORT MERGE SEMIJOIN |
MERGE_SJ(TABLE1, TABLE2) |
|
|
|
|
|
|
JOIN시 DRIVING 순서 결정 HINT |
HINT |
내용 |
ORDERED |
FROM 절의 앞에서부터 DRIVING |
DRIVING |
해당 테이블을 먼저 DRIVING- driving(table) |
|
|
|
|
|
|
기타 힌트 |
HINT |
내용 |
append |
insert 시 direct loading |
parallel |
select, insert 시 여러 개의 프로세스로 수행- parallel(table, 개수) |
cache |
데이터를 메모리에 caching |
nocache |
데이터를 메모리에 caching하지 않음 |
push_subq |
subquery를 먼저 수행 |
rewrite |
query rewrite 수행 |
norewrite |
query rewrite 를 수행 못함 |
use_concat |
in절을 concatenation access operation으로 수행 |
use_expand |
in절을 concatenation access operation으로 수행 못하게 함 |
merge |
view merging 수행 |
no_merge |
view merging 수행 못하게 함 |