Recent Posts
간단명료
NL(Nested Loops) 조인 본문
1. NL조인의 튜닝 포인트
- 테이블 간의 조인 횟수를 최소화하기 위한 조인 순서 최적화
- Driven 테이블의 경우 연결고리 인덱스가 반드시 사용되어야 한다
2. NL조인의 장단점
- 장점
- 인덱스를 통한 랜덤액세스기반에서 좋은 성능을 보임
- 단점
- 인덱스가 없는 경우 속도 저하
- 대용량데이터를 처리할 경우 성능 저하
3. 조인 순서 제어 방법
- 힌트사용
ORDERED 와 LEADING 을 같이 사용한 경우 LEADING은 무시된다.
ORDERED
FROM 절에 기술한 테이블 순서대로 제어SELECT /*+ ORDERED USE_NL(a,b) */ A.id, B.name FROM table_a a, table_b b WHERE a.joinkey_a = b.joinkey_b AND a.color = 'RED' AND b.size = 'MED'
a->b 순으로 NL조인 수행
LEADING
힌트 내 제시한 테이블 순서대로 제어/*+ LEADING(테이블명) */
- 뷰활용
- SUPPRESSSING 활용
- FROM 절 테이블 순서 변경(단, CBO에서는 의미 없음)
4. 연결고리 컬럼에 대한 인덱스의 중요성
- 양쪽 모두 인덱스 존재
- 조회 결과가 적은 테이블이 Driving 테이블로 선택
- 한쪽만 인덱스 존재
- 인덱스가 존재하는 테이블을 Driven 테이블로 선택
- 양쪽 모두 인덱스 미존재
NL조인 불가
. . .
728x90
반응형
'SQL > 업무에 바로 쓰는 SQL튜닝 입문' 카테고리의 다른 글
서브쿼리 (0) | 2022.03.28 |
---|---|
인덱스 활용이 불가능한 경우 (0) | 2022.03.26 |
결합인덱스 (0) | 2022.03.26 |
인덱스 (0) | 2022.03.26 |
옵티마이저 (0) | 2022.03.26 |