2014년 4월 13일 일요일

Rule Base Optimizer(RBO)에서 드라이빙 테이블의 위치 [ORACLE/SQL/HINT/오라클/교육/강의/강좌/SQL교육/오라클 PLSQL/강의/강좌/오라클교육/ORACLE초보교육/오라클실무강좌]

Rule Base Optimizer(RBO)에서 드라이빙 테이블의 위치 [ORACLE/SQL/HINT/오라클/교육/강의/강좌/SQL교육/오라클 PLSQL/강의/강좌/오라클교육/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; 

댓글 없음:

댓글 쓰기