select *
from emp e , dept d
where d.deptno(+) = e.deptno
and d.loc = 'DALLAS'
and e.sal >= 1000
------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |
------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5 | 250 |
|* 1 | TABLE ACCESS BY INDEX ROWID | EMP | 5 | 160 |
| 2 | NESTED LOOPS | | 5 | 250 |
| 3 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 18 |
|* 4 | INDEX RANGE SCAN | DEPT_LOC_IDX | 1 | |
|* 5 | INDEX RANGE SCAN | EMP_DEPTNO_IDX | 5 | |
------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("E"."SAL">=1000)
4 - access("D"."LOC"='DALLAS')
5 - access("D"."DEPTNO"="E"."DEPTNO")
Outer NL 조인, Outer 소트 머지 조인 시 드라이빙 테이블은 항상 Outer 기호가 붙지 않은 쪽으로 고정된다.
Outer 해시 조인의 경우,1Og부터 자유롭게 조인 순서가 바뀌도록 개선(9i까지는 해시 조인도순서가 고정적)
sal >= 1000 조건에 부합하는 사원 레코드가 매우 많고, loc = 'DALLAS' 조건에 부합하는 부서에 속한 사원이 매우 적다면 dept 테이블블을 먼저 드라이빙하는 것이 유리
ANSI Outer 조인문일 때는 Outer 기호 대신 조건절 위치에 신경을 써야 한다.
select *
from dept d left outer join emp e on d.deptno = e.deptno
where e.sal > 1000
select *
from dept d left outer join emp e on d.deptno = e.deptno and e.sal > 1000
- 강좌 URL : http://www.gurubee.net/lecture/3365
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.