■ INDEX 힌트를 사용해 테이블의 인덱스를 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT /*+ INDEX(EMP EMPNO_INDEX) */ EMPNO ,ENAME FROM SCOTT.EMP WHERE DEPTNO = 10; |
※ /*+ INDEX(테이블명 인덱스명) */
■ FULL 힌트를 사용해 테이블을 FULL SCAN 하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT /*+ FULL(ORDERS) */ ORDER_ID ,ORDER_DATE ,ORDER_AMOUNT FROM ORDERS WHERE ORDER_DATE BETWEEN TO_CHAR('2020-01-01', 'YYYY-MM-DD') AND TO_CHAR('2020-01-31', 'YYYY-MM-DD') ORDER BY ORDER_ID; |
※ /*+ FULL(테이블명) */
■ USE_HASH 힌트를 사용해 해시 함수를 이용해 테이블 간 접근하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT /*+ USE_HASH(B) */ A.DEPARTMENT_NAME ,A.DEPARTMENT_ID ,SUM(B.SALES_AMOUNT) FROM DEPARTMENT A, SALES B WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID AND A.BUSINESS_NAME = '가전사업부' AND B.SALES_YM = '202001' GROUP BY A.DEPARTMENT_NAME ,A.DEPARTMENT_ID |
※ /*+ USE_HASH(테이블명 [테이블명 …])
더 읽기
■ USE_NL 힌트를 사용해 순차적인 루프에 의한 테이블 간 접근하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT /*+ USE_NL(B) */ A.CUSTOMER_ID ,A.CUSTOMER_NAME ,B.ORDER_DATE ,B.ORDER_NAME FROM CUSTOMER A, ORDER B WHERE A.CUSTOMER_ID = B.CUSTOMER_ID AND A.CUSTOMER_NAME = '홍길동' AND B.ORDER_DATE = '20200201' |
※ /*+ USE_NL(테이블명 [테이블명 …])
더 읽기
■ LEADING 힌트를 사용해 테이블 접근 순서를 설정하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT /*+ LEADING(B A) */ A.CUSTOMER_ID ,A.CUSTOMER_NAME ,B.ORDER_DATE ,B.ORDER_NAME FROM CUSTOMER A, ORDER B WHERE A.CUSTOMER_ID = B.CUSTOMER_ID AND A.CUSTOMER_NAME = '홍길동' AND B.ORDER_DATE = '20200201' |
※ /*+ LEADING(테이블명 [테이블명 …]) */
■ ORDERED 힌트를 사용해 FROM절의 테이블 순서대로 접근하는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT /*+ ORDERED */ A.CUSTOMER_ID ,A.CUSTOMER_NAME ,B.ORDER_DATE ,B.ORDER_NAME FROM CUSTOMER A, ORDER B WHERE A.CUSTOMER_ID = B.CUSTOMER_ID AND A.CUSTOMER_NAME = '홍길동' AND B.ORDER_DATE = '20200201' |
■ 힌트 분류표를 보여준다. ▶ 힌트 분류표
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
──────────────────────────────── 구분 힌트 ───────────────── ────────────── Optimization Goals and Approaches ALL_ROWS 혹은 FIRST_ROWS CHOOSE RULE Acess Method Hints AND_EQUAL CLUSTER FULL HASH INDEX 혹은 NO_INDEX INDEX_ASC 혹은 INDEX_DESC INDEX_COMBINE INDEX_FFS ROWID Join Order Hints ORDERED STAR Join Operation Hints DRIVING_SITE HASH_SJ, MERGE_SJ 혹은 NL_SJ LEADING USE_HASH 혹은 USE_MERGE USE_NL Parallel Execution Hints PARALLEL 혹은 NOPARALLEL PARALLEL_INDEX PQ_DISTRIBUTE NOPARALLEL_INDEX Query Transformation Hints EXPAND_GSET_TO_UNION FACT 혹은 NOFACT MERGE NO_EXPAND NO_MERGE REWIRTE 혹은 NOREWRITE STAR_TRANSFORMATION USE_CONCAT Other Hints APPEND 혹은 NOAPPEND CACHE 혹은 NOCACHE CURSOR_SHARED_EXACT DYNAMIC_SAMPLING NESTED_TABLE_GET_REFS UNNEST 혹은 NO_UNNEST ORDERED_PREDICATES ──────────────────────────────── |