양군의 행복한 이야기

오라클 hint 본문

오라클

오라클 hint

까망거북 2008. 1. 4. 11:07

* RULE : RULE BASE 옵티마이져 사용


* FIRST_ROWS : 첫째 레코드의 추출시간을 최소화 할 목적으로 최적화


* ALL_ROWS : 모든 레코드를 모두 처리하는 시간의 최소화는 목적으로 최적화


* FULL : 지정된 테이블에 대한 전체 스캔


* ROWID : 지정된 테이블에 대한 ROWID에 의한 테이블 스캔


* CUSTER : 지정된 테이블에 대한 클러스터 스캔


* HASH : 지정된 테이블에 대한 해쉬 스캔


* INDEX : 특정한 인덱스를 사용함을 알림


       SELECT /*+ INDEX(order item_index_name) */ *

       FROM order

       WHERE item > '';


* INDEX_ASC : 내림차순(순차적)으로 INDEX를 스캔


* INDEX_DESC : 오름차순(역순)으로 INDEX를 스캔


        SELECT /*+ INDEX_DESC(A WORK_INDEX) */ WORK_CODE, WORK_NAME

        FROM JOB A

        WHERE WORK = 'SALES';


* AND_EQUALS : 어려개의 IDNEX들을 MERGE하여 사용(2~5개)


* ORDERED : FROM절에 기술된 TABLE순으로 JOIN


        SELECT /*+ ORDERED */ *

        FROM   table_1 a, table_2 b

        WHERE a.column_1 = b.column_1

        AND      a.column_2 between 'a' and 'c'

        AND      b.column_1 = 'a';


         정상적인 경우 옵티마이져는 "="로 비교 되고 있는 table_2를 먼저 access 한다.

        이때 table_2의 분포도가 table_1의 분포도 보다 좋지 못할때는 조회에 따른 비요을

        많이 소비하게된다.

         ORDERED hint를 사용해서 테이블 기술 순서데로 access하도록 수정한다.


* USE_NL : 먼저 특정 TABLE의 ROW를 액세스하고 그 값에 해당하는 다른 TABLE의 ROW를

               찾는 작업을 해당법위까지 실행하는 조인


* USE_MERGE : 먼저 각각의 TABLE의 처리범위를 스캔하여 SORT한 후 서로 MERGE하면서

                       JOIN하는 방식


* PARALLEL : 병렬처리 프로세서의 개수를 지정


* CACHE : 테이블의 로우들을 메모리내에 상주


* NOCHACHE : 메모리내에 상주(Cache)시킨 옵션의 해제


* MERGE-AJ : 부정형의 조인(Anti-Join)을 소트머지 방식으로 수행


* HASH-AJ : 부정형의 조인을 해쉬조인(Hash Join)방식으로 수행