2019년 1월 4일
데이터베이스 해시 조인 (Hash Join)
I. 해시 함수 기반, 해시 조인
가. 해시 조인 (Hash Join)의 개념
- 선행 테이블에 해시 적용, 해시 영역 구성하여 후행 테이블 차례로 해시 기능 이용 조인
나. 해시 조인의 특징
- 대용량 처리 시 랜덤액세스와 정렬 부담 해소 대안
- 각 테이블 속성을 해시 키로 동일 해시 함수 사용
II. 해시 조인 구성도 및 동작 원리
가. 해시 조인 구성도
나. 해시 조인 동작 원리/성능
구분 | 세부 사항 | 설명 |
---|---|---|
동작 원리 | 작은 릴레이션 | – 조인에 참여한 릴레이션 중 작은 릴레이션을 선택 테이블로 선택 |
해시 영역 사용 | – 선택 선행 테이블에 해시 함수 적용 – 해시 영역에 해시 테이블 생성 | |
해시 테이블 탐색 | – 후행 테이블을 읽어 해시 테이블 탐색 하면서 조인 | |
성능 | 키 컬럼 | – 키 컬럼에 중복값 많으면 버킷 당 엔트리가 많아지며 버킷 스캔 단계 탐색 속도 저하 |
III. 해시 조인 사용 시 고려사항
- 해시 충돌 최소화, 버킷 하나 당 하나의 엔트리
- 한 쪽 집합이 해시 영역에 저장되므로 충분히 작아야 함
- 수행 빈도에 따라 H/W 자원 사용률 증감