[NO_INDEX]인덱스관련힌트, Hints For Access Paths(NO_INDEX)
인자로 주어진 인덱스를 사용하지 말라는 의미인데 인덱스를 인자로 안주고 테이블만 인자로 준다면 그 테이블에서 생성된 어떠한 인덱스도 사용하지 말라는 뜻이다.
[형식]
/*+ NO_INDEX(테이블명 [인덱스명 [인덱스명] … ]) */
[인덱스를 사용하는 경우]
SQL> SELECT /*+ INDEX(EMP idx_emp_ename) */
ename, sal
FROM EMP
WHERE ENAME LIKE 'S%';
----------------------------------------------------------------
Operation Object Name Rows Bytes Cost
----------------------------------------------------------------
SELECT STATEMENT Optimizer Mode=ALL_ROWS 2 2
TABLE ACCESS BY INDEX ROWID SCOTT.EMP 2 18 2
INDEX RANGE SCAN SCOTT.IDX_EMP_ENAME 2 1
[NO_INDEX를 사용하는 경우]
SQL> SELECT /*+ NO_INDEX(EMP idx_emp_ename) */
ename, sal
FROM EMP
WHERE ENAME LIKE 'S%';
----------------------------------------------------------------
Operation Object Name Rows Bytes Cost
----------------------------------------------------------------
SELECT STATEMENT Optimizer Mode=ALL_ROWS 2 3
TABLE ACCESS FULL SCOTT.EMP 2 18 3
인자로 주어진 인덱스를 사용하지 말라는 의미인데 인덱스를 인자로 안주고 테이블만 인자로 준다면 그 테이블에서 생성된 어떠한 인덱스도 사용하지 말라는 뜻이다.
[형식]
/*+ NO_INDEX(테이블명 [인덱스명 [인덱스명] … ]) */
[인덱스를 사용하는 경우]
SQL> SELECT /*+ INDEX(EMP idx_emp_ename) */
ename, sal
FROM EMP
WHERE ENAME LIKE 'S%';
----------------------------------------------------------------
Operation Object Name Rows Bytes Cost
----------------------------------------------------------------
SELECT STATEMENT Optimizer Mode=ALL_ROWS 2 2
TABLE ACCESS BY INDEX ROWID SCOTT.EMP 2 18 2
INDEX RANGE SCAN SCOTT.IDX_EMP_ENAME 2 1
[NO_INDEX를 사용하는 경우]
SQL> SELECT /*+ NO_INDEX(EMP idx_emp_ename) */
ename, sal
FROM EMP
WHERE ENAME LIKE 'S%';
----------------------------------------------------------------
Operation Object Name Rows Bytes Cost
----------------------------------------------------------------
SELECT STATEMENT Optimizer Mode=ALL_ROWS 2 3
TABLE ACCESS FULL SCOTT.EMP 2 18 3
댓글 없음:
댓글 쓰기