2014년 4월 4일 금요일

[오라클옵티마이저힌트]Rule Base Optimizer(RBO)에서 드라이빙 테이블의 위치[오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE]

[오라클옵티마이저힌트]Rule Base Optimizer(RBO)에서 드라이빙 테이블의 위치[오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE]


myemp1 : 2,000만건
mydept1 : 5건

-- Rule Based Optimizer에서 드라이빙 테이블의 위치
-- 조인되는 컬럼 모두에 인덱스가 있는 경우
-- from절에서 멀리 떨어진 테이블이 드라이빙 테이블이다,
create index idx_myemp1_deptno on myemp1(deptno)
create index idx_mydept1_deptno on mydept1(deptno)

-- 7.8초
select /*+ RULE */
    count(*)
from myemp1 e, mydept1 d    --mydept1테이블이 드라이빙 테이블
where e.deptno = d.deptno;

-- 17초
select /*+ RULE */
    count(*)
from mydept1 d, myemp1 e  --myemp1 테이블이 드러이빙 테이블
where e.deptno = d.deptno; 

댓글 없음:

댓글 쓰기