개발 등/ORACLE

JOIN

darkhorizon 2009. 3. 31. 14:48
728x90
반응형

Nested Loop JOIN

select a.F!,...,b.F1
from tab1 a, tab2 b
where a.key1 = b.key2
and a.f1 = 'ab'
and a.f2 ='10'

- 순차적(부분범위처리가능)
- 종속적(먼저치리되는 테이블의 처리범위에 따라 처리량 결정)
- 랜덤(Random)액세스 위주
- 연결고리 상태에 따라 영향이 크다
- 주로 좁은 범위 처리에 유리
-싱글블럭Random IO가 많다. 다량데이터 조인할때 속도 저하
- 한쪽 인덱스를 안되게 만들면 다른쪽 인덱스를 무조건 사용한다.
- OLTP시스템에서 사용 : 주문처리 쇼핑몰 등 데이터량이 작은것
- Driving Range가 좁을때 사용


Sort Merge JOIN

select /*+ use_merge(a b) */ a.f1, b.f2
from tab1 a, tab2 b where  a.key1= b.key2 and a.f1='ab' and b.f2='10'

- 동시적(무조건 전체범위처리)
- 독립적(자기의 처리범위만으로 처리량결정)
- 스캔액세스위주
- 연결고리상태에 영향이 없다
- 주로 넓은 범위 처리에 유리
- 부분처리는 안된다
- 자기 범위를 줄일수 있는 조건이 각테이블당 있을때 빠르다
- 조건없는쪽은 풀스캔이다
- 서로 독립적이기 때문에 연결고리 이상이 되어도 상관없다
- 랜덤IO를 줄이고자할때  배치프로그램 통계 만들때 사용


출처 : http://masterofcoding.tistory.com/
728x90