[Hint]ACCESS 경로를 변경하는 힌트(INDEX_COMBINE):namespace prefix = o />
이 힌트는 비트맵 인덱스에 대해서만 적용 가능한 힌트 입니다. 예를 들어 EMP 테이블에 대해ename에 bidx_emp_ename이라는 비트맵 인덱스, deptno에 bidx_emp_deptno라는 비트맵 인덱스가 생성되어 있다고 할 때 아래와 같이 INDEX_COMBINE이라는 힌트와 테이블 명을 인자로 주게 되면 적절한 비트맵 인덱스를 조합하여 실행 계획을 만들어 내게 됩니다.
구로디지털 오엔제이프로그래밍실무교육센터
SELECT
*
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 대신 INDEX 힌트를 이용하여 비트맵 인덱스를 줘도 되지만 비트맵 인덱스라는 경우 알리기 위해 INDEX_COMBINE을 사용하는 것이 좋습니다.
[실습]
- 실습을 위한 예제 테이블 및 데이터는 아래 링크에서 확인 바랍니다.
myemp1 : 1000만건
myemp1_old : 100만건
mydept : 5건
테스트환경 : oracle 11g
SQL> conn scott/tiger
연결되었습니다.
SQL> set autotrace on explain
SQL> set linesize 120
SQL> set timing on
SQL> create bitmap index bidx_myemp1_deptno on myemp1(deptno);
인덱스가 생성되었습니다.
SQL> create bitmap index bidx_myemp1_sal on myemp1(sal);
인덱스가 생성되었습니다.
SQL> SELECT
2 count(ename)
3 FROM MYEMP1 E
4 WHERE deptno = 1
5 AND sal > 800000;
COUNT(ENAME)
------------
1200000
경 과: 00:00:08.84
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 20 | 16990 (1)| 00:03:24 |
| 1 | SORT AGGREGATE | | 1 | 20 | | |
|* 2 | TABLE ACCESS FULL| MYEMP1 | 1200K| 22M| 16990 (1)| 00:03:24 |
-----------------------------------------------------------------------------
SQL>
SELECT
count(ename)
FROM MYEMP1 E
WHERE deptno = 1
AND sal > 800000
;
COUNT(ENAME)
------------
1200000
경 과: 00:00:10.74
-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 20 | 124K (1)| 00:24:59 |
| 1 | SORT AGGREGATE | | 1 | 20 | | |
| 2 | TABLE ACCESS BY INDEX ROWID | MYEMP1 | 1200K| 22M| 124K (1)| 00:24:59 |
| 3 | BITMAP CONVERSION TO ROWIDS| | | | | |
| 4 | BITMAP AND | | | | | |
|* 5 | BITMAP INDEX SINGLE VALUE| BIDX_MYEMP1_DEPTNO | | | | |
| 6 | BITMAP MERGE | | | | | |
|* 7 | BITMAP INDEX RANGE SCAN | BIDX_MYEMP1_SAL | | | | |
비트맵 인덱스를 사용 안 했을 때 성능이 더 좋다.
==================================================================================
[오프라인 개강예정강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.]
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[01/06][기업100%환급]Spring ,MyBatis,Hibernate실무과정
[01/06][기업100%환급]SQL기초에서 Schema Object까지
[01/06]C#,ASP.NET마스터
[01/13]iPhone 하이브리드 앱 개발 실무과정
[01/13][기업100%환급]PL/SQL,ORACLE HINT,TUNING
[01/13][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
[01/13][기업100%환급]HTML5,JavaScript,Ajax,jQUERY,JSON
[01/16][채용확정]오라클자바실무개발자신입과정
[평일야간]
[01/07]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[01/07]안드로이드개발자과정
[01/08]C#,ASP.NET마스터
[01/09]iPhone하이브리드앱개발실무과정
[01/09]웹퍼블리싱 마스터
[01/09]Spring3.X, MyBatis, Hibernate실무과정
[01/24]SQL초보에서실전전문가까지
[주말]
[01/04]닷넷실무자를위한WPF개발자과정
[01/04]Spring3.X,MyBatis,Hibernate실무과정
[01/11]C#,ASP.NET마스터
[01/11]JAVA&WEB프레임워크실무과정
[01/11]안드로이드개발자과정
[01/11]SQL초보에서전문가까지
[01/18]웹퍼블리싱 마스터
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[01/06][기업100%환급]Spring ,MyBatis,Hibernate실무과정
[01/06][기업100%환급]SQL기초에서 Schema Object까지
[01/06]C#,ASP.NET마스터
[01/13]iPhone 하이브리드 앱 개발 실무과정
[01/13][기업100%환급]PL/SQL,ORACLE HINT,TUNING
[01/13][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
[01/13][기업100%환급]HTML5,JavaScript,Ajax,jQUERY,JSON
[01/16][채용확정]오라클자바실무개발자신입과정
[평일야간]
[01/07]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[01/07]안드로이드개발자과정
[01/08]C#,ASP.NET마스터
[01/09]iPhone하이브리드앱개발실무과정
[01/09]웹퍼블리싱 마스터
[01/09]Spring3.X, MyBatis, Hibernate실무과정
[01/24]SQL초보에서실전전문가까지
[주말]
[01/04]닷넷실무자를위한WPF개발자과정
[01/04]Spring3.X,MyBatis,Hibernate실무과정
[01/11]C#,ASP.NET마스터
[01/11]JAVA&WEB프레임워크실무과정
[01/11]안드로이드개발자과정
[01/11]SQL초보에서전문가까지
[01/18]웹퍼블리싱 마스터
홈페이지 바로가기 : http://www.oraclejavanew.kr/
댓글 없음:
댓글 쓰기