본문 바로가기
IT/MSSQL

[MSSQL] 해시조인(HASH JOIN) 장/단점 설명

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

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

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

2.머지조인(SORT MERGE JOIN)

3.해시조인(HASH JOIN)

 

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


해시조인(HASH JOIN)

해시조인은 인덱스를 사용할 수 없는 환경에서 결과를 정렬할 필요가 없을 때 효율적으로 사용할 수 있는 조인방법이다.
만약 결과를 정렬할 필요가 있다면 머지조인이 더 효율적일 수 있다.
조인 후 결과가 아주 작아 메모리에서 정렬이 가능하면 해시 조인을 한 후에 정렬을 해도 문제가 되지 않는다.

 

 

빌드입력 테이블

- 조인 테이블 중에 통계를 기반으로 데이터가 작은 테이블을 빌드입력으로 선정함(해시 테이블 생성시 마다 메모리에 올리는 작업이 진행되기 때문에 비용감소목적)
- 빌드입력의 조인컬럼에 해시함수를 적용해서 해시키(인덱스 열할)를 생성 후 -> 해시 테이블에 저장


프로브입력 테이블

- 해시 테이블 생성이 완료되면 프로브 입력으로 선정된 테이블의 조인조건에 같은 방법으로 해시함수를 적용하여 해시키(인덱스 역할)를 생성
- 이후 해시 테이블에서 같은 해시키(인덱스 역할)를 찾아서 조인을 진행


주의사항

해시 테이블을 생성하는 중 메모리가 부족하면 유예해시조인으로 진행되며 추가로 디스크를 사용하게 되고 느린 디스크는 전체적인 성능 저하로 이어집니다.
조건자가 = 일 경우에만 사용이가능하다

반응형
그리드형

댓글