일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 상태공간트리
- mssql호환성수준
- 독학
- 예제
- 윈도우11인터넷없이설치
- windows11install
- SQLD
- 선택정렬
- adsp공부방법
- mssql호환성수준확인
- GROOUPING SETS
- sql튜닝
- 톰캣버전확인
- 삽입정렬
- 코딩테스트
- 프로세스에연결
- 분할정복법
- mssql프로시저검색
- 호환성수준변경
- 알고리즘
- 비밀번호
- 순환
- it자격증추천
- It
- 코테
- SQL
- mssql함수검색
- w3wp.exe
- windows11setup
- 윈도우11네트워크없이설치
- Today
- Total
404 not found
[SQL 성능 분석하기] NESTED LOOPS 조인 본문
NESTED LOOPS 조인
1. NESTED LOOPS JOIN
옵티마이저가 Driving Table(Outer Table)을 결정함
Driving Table이 아닌 테이블은 Driven Table(Inner Table)로 지정함
Driving Table의 각 row에 대해 이들이 추출될 떄마다 Driven Table의 연관된 모든 row를 조인에 의해 액세스
* 튜닝포인트
: 테이블 간 조인 횟수를 최소화할 수 있도록 Driving Table 선택 > 조인 순서 제어
: Driven Table의 연결고리 칼럼에 대한 인덱스 구성
2. NESTED LOOPS JOIN의 수행 절차
: 연결횟수는 Driving Table의 건수와 같다.
3. NESTED LOOPS JOIN의 장단점
: 인덱스에 의한 랜덤 액세스에 기반하고 있기 때문에 대량의 데이터 처리 시 적합하지 않음
: Driving Table로는 테이블의 데이터가 적은 마스터 테이블이거나, where절 조건으로 적절하게 row를 제어할 수 있는 것이여야함
: Driven Table에는 조인을 위한 적절한 인덱스가 생성되어 있어야함
4. DRIVING TABLE의 원리
A(2000건) > B(10건) > C : 4000회(A>B: 2000회 + B>C: 2000회)
C(1건) > B(10건) > A(2000건) : 11회(C>B: 1회 + B>A: 10회)
5. 조인 순서 제어 방법
- 조인 순서 제어를 위한 힌트 사용
/*+ORDERED*/ -- FROM절에 기술한 테이블 순서대로 제어
/*+LEADING(table명)*/ -- 힌트 내에 제시한 테이블이 드라이빙으로 채택됨
* ORDERED가 사용되면 LEADING 힌트는 무시됨
- 뷰 활용
- 서프레싱(Suppressing)활용
- FROM절의 테이블 순서 변경
: RBO하에서 각 테이블에 대한 규칙이 동일할 때, FROM절로부터 멀리 있는 테이블부터 처리함
: CBO에서 의미없음
6. 연결고리에 대한 인덱스
테이블 A,B모두 Index가 있는 경우
A -> B | TABLE_A | RANGE SCAN |
TABLE_B | INDEX SCAN | |
B -> A | TABLE_B | RANGE SCAN |
TABLE_A | INDEX SCAN |
한쪽 테이블(A)에만 Index가 있는 경우
A -> B | TABLE_A | RANGE SCAN |
TABLE_B | FULL SCAN | |
B -> A | TABLE_B | FULL SCAN |
TABLE_A | INDEX SCAN |
모두 연결고리에 대한 인덱스가 없는 경우
: Driven Table에 대한 FULL TABLE SCAN 횟수는 Driving Table로 부터 읽어 들이는
row수 만큼이 됨
'SQL > SQL튜닝' 카테고리의 다른 글
[SQL 성능 분석하기] 조인 조건이 없는 조인 (0) | 2021.07.25 |
---|---|
[SQL 성능 분석하기] SORT/MERGE/HASH 조인 (0) | 2021.07.19 |
[SQL 성능 분석하기] 인덱스 활용이 불가능한 경우 (0) | 2021.07.13 |
[SQL 성능 분석하기] 결합 인덱스 (0) | 2021.07.13 |
[SQL 성능 분석하기] 인덱스 (0) | 2021.07.12 |