[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) */
'프로그래밍 > oracle' 카테고리의 다른 글
oracle - [Hint]ACCESS 경로를 변경하는 힌트(INDEX_FFS) (0) | 2012.07.19 |
---|---|
oracle - [Hint]ACCESS 경로를 변경하는 힌트(INDEX_DESC) (0) | 2012.07.19 |
oracle - [Hint]ACCESS 경로를 변경하는 힌트(INDEX_ASC) (0) | 2012.07.19 |
oracle - [Hint]ACCESS 경로를 변경하는 힌트(INDEX) (0) | 2012.07.19 |
oracle - [Hint]ACCESS 경로를 변경하는 힌트(HASH) (0) | 2012.07.19 |