티스토리 뷰

it

JOIN - SORT MERGE JOIN

name19 2023. 3. 5. 03:02
반응형

3-3. JOIN - SORT MERGE JOIN

3.1SORT MERGE JOIN의 개념

Sort Merge 조인의 사용

•연결 고리에 이상이 있는 경우

- 조인을 위한 연결 고리 칼럼에 대한 인덱스가 없는 경우

•대용량의 자료를 조인 처리함으로써 인덱스 사용에 의한 랜덤 액세스의 오버헤드가 많은 경우

1. Sort Merge 조인에서는 Driving Table이 의미 없음 즉, 각 테이블에 대한 처리를 독립적으로 행함

2. 읽혀진 각 테이블의 데이터를 조 칼럼에 대하여 정렬 인을 위한 연결 고리

3. 정렬 후에 조인 작업이 수행(Merge)

3.3SORT MERGE JOIN의 예

 SQL> SELECT /*+ USE_MERGE(A B) */

A.ENAME, A.JOB, B.DEPTNO, B.DNAME FROM EMP A, DEPT B

WHERE A.DEPTNO = B.DEPTNO

AND A.HIREDATE >=TO_DATE('19810101','YYYYMMDD');

3.4SORT MERGE JOIN의 장단점

① Sort Merge 조인(SMJ)은 조인 결합 조건으로 사용되는 연결고리 칼럼에 인덱스가 생성되어 있지 않은 경우에 빠른 조인을 위하여 사용된다.

② 조인 하고자 하는 각 테이블에 대해서 독립적으로 데이터를 읽어 들일 때, 이를 얼마나 빠르게 할 것 인가가 중요하다.

③ 각 테이블로부터 읽혀진 데이터를 연결고리가 되는 칼럼에 대하여 정렬을 수행할 때 이를 얼마나 빠르게 할 것인가가 중요하다.

④ Parallel Processing을 함께 활용함으로 테이블에 대한

Full Table scan의 속도를 향상시키는 것도 가능하다.

3.5 SORT MERGE JOIN 파라미터

조인방식

Sort Merge

Parameters

DB_FILE_MULTIBLOCK_READ_COUNT SORT_AREA_SIZE SORT_AREA_RETAINED_SIZE

◆ DB_FILE_MULTIBLOCK_READ_COUNT

Full table scan 시 I/O를 최소화하기 위해 지정하는 것으로, 이는 한 번의 I/O에 의해 처리할 수 있는 block의 개수를 의미한다. 너무 크게 설정하면 index scan 보다 full table scan을 선호하게 된다.

◆ SORT_AREA_SIZE

Sort merge조인은 이 parameter에 의해 크게 영향을 받는다.

정렬을 수행하는 데 필요한 메모리 크기 보다 작게 설정하면 disk I/O가 많이 발생하게 되며, 반대로 너무 크게 설정하면 OS 상의 메모리가 부족하게 된다.

반응형
댓글