제4장 조인 튜닝
제1절 NL 조인
제2절 소트 머지 조인
제3절 해시 조인
제4절 스칼라 서브쿼리
제5절 고급 조인 기법
조인튜닝 | |||
1. NL 조인 Nested Loop Join |
개념 | 중첩 루프 방식으로 조인 1. 외부 테이블의 각 행을 하나씩 읽습니다. 2. 내부 테이블에 조건에 맞는행을 찾기위해 스캔. |
|
장점 | 간단, 구현이 쉬움, 작은 테이블간의 조인에 적합 | ||
단점 | 큰 테이블에서 성능이 저하됨 O(n*m) 복잡도, 여기서 n은 외부 테이블의 행수, m은 내부테이블의 행수 |
||
성능향상 | 1. 인덱스 활용 2. 작은 테이블과 큰테이블간 조인에 사용. |
||
2. 소트머지조인 Sort-Merge Join |
개념 | 두테이블 정렬한 후 정렬된 데이터를 병합 조인. 1. 조인 조건에 따라 정렬 2. 정렬된 데이터를 순차적으로 병합 조인 |
|
장점 | 대량데이터 조인시 효율적 정렬된 데이터 순차적으로 처리 , 성능조음 |
||
단점 | 정렬작업이 필요하므로 시간과 자원소모 정렬된 상태로 유지하기위한 추가공간 |
||
성능향상 | 1. 인덱스 2. 메모리관리, 임시 디스크공간 적절히 활용. |
||
3. 해시조인 Hash Join |
개념 | 하나의 테이블을 해시 테이블로 변환, 각 행을 해시테이블에서 검색 1. 작은 해시테이블 2. 큰테이블의 행을 해시테이블에서 조인 |
|
장점 | 인덱스가 없어도 효율 대량의 데이터에 대해 좋은 성능 |
||
단점 | 메모리 사용량 많음 해시 테이블생성하는데 시간소요. |
||
성능향상 | 1. 충분한 메모리 할당 2. 부분해시조인 - 대용량처리시 분할 해시테이블 사용. |
||
4. 스칼라 서브쿼리 Scalar Subquery |
개념 | 서브쿼리가 단일값을 반환하는경우 | |
장점 | 가독성, 특정조건 값 쉽게 얻음 | ||
단점 | 서브쿼리가 반복적으로 실행, 성능저하복잡한 쿼리 성능문제 | ||
성능향상 | 1. 서브쿼리를 조인으로 변경하여 성능개선 2. 인덱스 활용 : 인덱스 추가. |
||
5. 고급 조인기법 Advanced Join Techniques |
1. 배치조인 Batch Join |
대량의 데이터를 배치 단위로 처리하여 조인, 일정량씩 나눠처리함 | |
2. 병렬조인 Parallel Join |
여러스레드, 프로세스에 동시에 수행, 성능향상, 대규모처리시 | ||
3. 클러스터링조인 Clustered Join |
데이터가 물리적으로 정렬되어 있을때 인접 데이터 블록이용 조인 | ||
4. 인덱스조인 Index Join |
인덱스 이용 조인조건 데이터 빠르게 찾기. 인덱스 최적화 있을때 성능향상. |
||
5. 비트맥 인데스 조인 Bitmap Index Join |
비트맵 인덱스 사용, 조인 조건에 맞는 데이터 효율적으로 찾음. 값의 종류가 적은 컬럼 효과적. |
'Data' 카테고리의 다른 글
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제6장 고급 SQL 튜닝 (0) | 2024.07.19 |
---|---|
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제5장 SQL 옵티마이저 (0) | 2024.07.19 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제3장 인덱스 튜닝 (0) | 2024.07.05 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제2장 SQL 분석 도구 (0) | 2024.07.04 |
[1028 SQL]Ⅲ. SQL 고급 활용 및 튜닝-제1장 SQL 수행 구조-아키텍처, I/O (0) | 2024.06.24 |