- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=3899797&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
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이 수행되는 처리 과정
문서정보
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=3899797&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.