2016년 12월 13일 화요일

[오라클교육,튜닝교육,SQL교육학원추천_탑크리에듀][SQL튜닝]OR연산을 Union으로...

[SQL튜닝]OR연산을 Union으로... 

아래 쿼리를 이해하자. 

-- myemp1, myemp_old 테이블은 같은 구조를 가지며, 
-- myemp1 : 2000만건, myemp1_old : 300만건 
-- ename, sal 칼럼에 대해 각각 인덱스가 생성되어 있다. 

-- 6.5초 
SELECT e1.ename FROM myemp1 e1, myemp1_old e2 
WHERE e1.ename = e2.ename 
OR e1.sal = e2.sal 


-- 아래 쿼리가 조금 빠르다. 
-- 6.0초 
SELECT e1.ename FROM myemp1 e1, myemp1_old e2 
WHERE e1.ename = e2.ename 
union all 
SELECT e1.ename FROM myemp1 e1, myemp1_old e2 
WHERE e1.sal = e2.sal 

인덱스가 생성된 칼럼에 대해 or 로 WHERE절을 사용하는 경우 union all을 사용하는것이 조금 빠르다.

댓글 없음:

댓글 쓰기