2014년 2월 3일 월요일

SQL함수,MINUS를 사용한 경우의 SQL쿼리 튜닝 (오라클튜닝,SQL튠밍,교육/강좌.구로디지털단지,오라클자바커뮤니티)

SQL함수,MINUS를 사용한 경우의 SQL쿼리 튜닝 (오라클튜닝,SQL튠밍,교육/강좌.구로디지털단지,오라클자바커뮤니티)

]

[실습]

-      실습을 위한 예제 테이블 및 데이터는 아래 링크에서 확인 바랍니다.

myemp1 : 1000만건
myemp1_old : 100만건
mydept : 5

테스트환경 : oracle 11g



1번 문장과 2번 문장은 20초 정도 차이가 났다. minus로 빼는 연산인 경우 select 리스트의 컬럼에 대해 인덱스를 만들고 index_ffs 힌트를 이용해 인덱스 패스트 풀 스캔하면 조금 성능이 나아 진다.

테스트 해보라...

index_ffs 힌트는 다음 URL을 참고
(http://www.onjprogramming.co.kr/oraclejavanew/oraclejava/bbs/board.php?bo_table=LecHINT&wr_id=64&sca=&sfl=wr_subject&stx=index_ffs&sop=and)

1.
with a as (
select ename, sal from myemp1
minus
select ename, sal from myemp1_old
)
select count(ename) from a   --47초

2.
with a as (   --27초
select /*+ index_ffs(e1 IDX_MYEMP1_ENAME_SAL) */ ename, sal from myemp1 e1
minus
select /*+ index_ffs(e1 IDX_MYEMP1_OLD_ENAME_SAL) */ ename, sal from myemp1_old e2
)
select count(ename) from a
 

댓글 없음:

댓글 쓰기