본문 바로가기

프로그래밍/oracle

oracle - [Hint]ACCESS 경로를 변경하는 힌트(NO_INDEX)

반응형

[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;
 
 
 
 

반응형