[Hint]ACCESS 경로를 변경하는 힌트(NO_INDEX)
[Hint]ACCESS 경로를 변경하는 힌트(NO_INDEX)
이 힌트의 인자로 주어진 인덱스를 사용하지 말라는 의미인데 인덱스를 인자로 안주고 테이블만 인자로 준다면 그 테이블에서 생성된 어떠한 인덱스도 사용하지 말라는 뜻입니다.
[형식]
/*+ NO_INDEX ( table [index [index]...] ) */
[인덱스를 사용하는 경우]
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를 사용하는 경우]
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
[예]
SELECT /*+NO_INDEX(employees emp_empid)*/ employee_id
FROM employees
WHERE employee_id > 200;
'프로그래밍 > oracle' 카테고리의 다른 글
oracle - [Hint]ACCESS 경로를 변경하는 힌트(ROWID) (0) | 2012.07.19 |
---|---|
oracle - [Hint]ACCESS 경로를 변경하는 힌트(REWRITE) (0) | 2012.07.19 |
oracle - [Hint]ACCESS 경로를 변경하는 힌트(NO_EXPAND) (0) | 2012.07.19 |
oracle - [Hint]ACCESS 경로를 변경하는 힌트(INDEX_FFS) (0) | 2012.07.19 |
oracle - [Hint]ACCESS 경로를 변경하는 힌트(INDEX_DESC) (0) | 2012.07.19 |