본문 바로가기
IT/MSSQL

[MSSQL] 중첩 루프 조인(NESTED LOOP JOIN) 장/단점 설명

by 베베야 2023. 1. 28.
728x90

MSSQL에서 지원하는 조인 방식은 아래와 같이 3가지가 존재한다.

1.중첩루프조인(NESTED LOOP JOIN)

2.머지조인(SORT MERGE JOIN)

3.해시조인(HASH JOIN)

 

이번 시간에는 그 중에서 "중첩루프조인(NESTED LOOP JOIN)"에 대해서 간단히 알아보도록 하자.


중첩루프조인(NESTED LOOP JOIN) 

- 순차적으로 처리된다.

- 작은 입력을 인덱스를 사용하여 조인할 가장 효율적 성능을 보인다.(OLTP 환경에 적합)

- 정렬이나 해시 테이블 생성과 같은 대기(STOP&GO) 해야하는 추가적인 선행 작업이 필요 없기 때문에 추가 메모리를 사용하지 않는다. 따라서 메모리 사용량이 가장 적다

- 메모리를 사용하지 않는 점은 많은 동시 사용자를 처리하는 OLTP 환경에서 장점으로 작용한다.

 

 

 

 

외부참조 테이블

- 통계를 기반으로 데이터가 작은 테이블을 외부테이블로 선택

- 조인횟수는 외부참조 테이블에 의해 결정되기 때문에 WHERE 조건으로 테이블 크기를 줄여야한다. 따라서 인덱스는 WHERE 조건을 기준으로 생성

 

내부참조 테이블

- 조인조건의 컬럼(ON) 기준으로 인덱스 생성 필요(내부참조 테이블에 인덱스가 없는 경우 외부 참조테이블에서 조인할 때마다 풀스캔이 발생하여 성능이 저하된다)


주의사항

- 인덱스가 테이블 선택의 영향을 주기 때문에 중첩루프 조인을 사용한다면 내측 테이블로 사용할 테이블에는 반드시 적당한 인덱스를 만들어야 원하는 실행 계획을 만들 있다

- 외부입력이 작고 내부 입력이 크면 효과적

 

 

반응형
그리드형

댓글