SGA vs PGA

img

기본 메커니즘

select /*+ ordered use_merge(c) */ e.사원번호, e.사원명, e.입사일자 , c.고객번호, c.고객명, c.전화번호, c.최종주문금액
from   사원 e, 고객 c
where  c.관리사원번호 = e.사원번호
and    e.입사일자     >= '19960101'
and    e.부서코드     = 'Z123'
and    c.최종주문금액 >= 20000
img

소트 머지 조인이 빠른 이유

소트 머지 조인의 주용도

소트 머지 조인 제어하기

-- use_merge 힌트 사용
-- ordered는 FROM절에 기술한 순서대로 조인하라고 지시하는 힌트(leading(e)로 대체 가능)
select /*+ ordered use_merge(c) */
       e.사원번호, e.사원명, e.입사일자
     , c.고객번호, c.고객명, c.전화번호, c.최종주문금액
from   사원 e, 고객 c
where  c.관리사원번호 = e.사원번호
and    e.입사일자     >= '19960101'
and    e.부서코드     = 'Z123'
and    c.최종주문금액 >= 20000

-- 양쪽 테이블을 각각 소트한 후, 위쪽 사원 테이블 기준으로 아래쪽 고객 테이블과 머지 조인
-- 소트할 대상을 찾기 위해 각 테이블을 엑세스할 때 인덱스 사용(Table Full Scan도 가능)

Execution Plan
----------------------------------------------------------
0      SELECT STATEMENT Optimizer=ALL_ROWS
1   0    MERGE JOIN
2   1      SORT (JOIN)
3   2        TABLE ACCESS (BY INDEX ROWID) OF '사원' (TABLE)
4   3          INDEX (RANGE SCAN) OF '사원_X1' (INDEX)
5   1      SORT (JOIN)
6   5        TABLE ACCESS (BY INDEX ROWID) OF '고객' (TABLE)
7   6          INDEX (RANGE SCAN) OF '고객_X1' (INDEX)

소트 머지 조인 특징 요약