Hash Join

Oracle Hash Join 방식

1. 하나의 Data 집합을 선택

2. 그 집합을 메모리 내에 단일 테이블 Hash Cluster(충분한 메모리가 있는경우)로 변환한다. 이때, 조인 컬럼 값에 대해 내부적인 해싱함수를 적용해 해시 키 값을 생성한다.

3. 두 번째 테이블로 부터 데이터를 읽어 들인다. 각 로우를 읽어 들일 때 조인 컬럼 값에 동일한 해싱함수를 적용시키면서, 메모리의 Hash Cluster에서 일치하는 로우가 있는지 체크한다.

\* Hash Cluster에 Data를 무작위로 분산되도록 조인 컬럼 값에 대해 Hash 함수를 사용해야 하므로 해시 조인은 조인 조건이 "equality"일때만 사용 가능하다.

\* Hash Join에서 첫 번째 테이블이 메모리에 Hash Cluster를 'Build' 하므로 Build Table이라 하고, 두번째 Table이 그 Table의 Row로 메모리에 있는 Hash Cluster를 'Probe(탐침)'하므로 Probe Table이라고 한다.

Hash Join이 수행되는 처리 과정