티스토리 뷰
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 상의 메모리가 부족하게 된다.
'It' 카테고리의 다른 글
중생시키는 은혜 (0) | 2023.04.28 |
---|---|
중생 후 영혼의 “남아있는 부패성”으로 인한 범죄 (0) | 2023.04.27 |
3-2. JOIN - DRIVING TABLE (0) | 2023.04.25 |
3-4. JOIN - HASH JOIN (0) | 2023.04.24 |
비주얼베이직 명시적 선언과 묵시적 선언 (0) | 2023.04.23 |