본문 바로가기

프로그래밍/oracle

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

반응형

[Hint]ACCESS 경로를 변경하는 힌트(INDEX_COMBINE)
 
 
[Hint]ACCESS 경로를 변경하는 힌트(INDEX_COMBINE)

이 힌트는 비트맵 인덱스에 대해서만 적용 가능한 힌트 입니다. 예를 들어 EMP 테이블에 대해 ename에 bidx_emp_ename이라는 비트맵 인덱스, deptno에 bidx_emp_deptno라는 비트맵 인덱스가 생성되어 있다고 할 때 아래와 같이 INDEX_COMBINe이라는 힌트와 테이블 명을 인자로 주게 되면 적절한 비트맵 인덱스를 조합하여 실행 계획을 만들어 내게 됩니다.

SELECT /*+ INDEX_COMBINE(E) */
        *
FROM  EMP E
WHERE ename = ‘SMITH’
AND   deptno = 10;

Execution Plan
-------------------------------------------------------------------
SELECT STATEMENT Optimizer=CHOOSE 
   TABLE ACCESS (BY INDEX ROWID) OF ‘EMP’
   BITMAP CONVERSION (TO ROWIDS)
     BITMAP AND
       BITMAP INDEX (SINGLE VALUE) OF ‘bidx_emp_ename’
BITMAP INDEX (SINGLE VALUE) OF ‘bidx_emp_deptno’


뮬론 힌트 사용시 다음과 같이 테이블명과 비트맵 인덱스 명을 줘도 관계 없습니다.

/*+ INDEX_COMBINE(E bidx_emp_ename) */

또한 INDEX_COMBINE 대신 INDEX 힌트를 이용하여 비트맵 인덱스를 줘도 되지만 비트맵 인덱스라는 경우 알리기 위해 INDEX_COMBINE을 사용하는 것이 좋습니다.

/*+ INDEX(E bidx_emp_ename) */
 
 
 
 

반응형