2012-11-18 4 views
1

해시 왼쪽 외부 조인에 대한 알고리즘을 알고 오른쪽 테이블에 해시 테이블을 작성한 다음 왼쪽 테이블을 반복하고 해시 테이블에서 일치하는 항목을 검색하면 전체 외부 조인은 어떻게 작동합니까? 왼쪽 테이블의 값을 스캔 한 후에도 왼쪽 테이블과 일치하지 않는 오른쪽 테이블에 튜플을 가져 오는 방법이 필요합니다.해시 전체 외부 조인은 어떻게 작동합니까?

답변

1

프로브 레코드를 반복하면서 어떤 오른쪽 튜플이 빌드 테이블에서 일치하는 것을 기록했는지 기록합니다. 일치하는 각각에 대해 부울을 true로 설정하면됩니다. 알고리즘의 마지막 단계에서 빌드 테이블을 스캔하고 이전에 일치하지 않은 모든 튜플을 출력합니다.

알고있는 한 RDBMS에서 사용되지 않는 대체 전략이 있습니다. 왼쪽 및 오른쪽 튜플의 결합 해시 테이블을 작성하십시오. 그 테이블을 해시 키에서 왼쪽 튜플 목록과 오른쪽 튜플 목록으로 매핑하십시오. 두 입력 테이블을 모두 반복하여 해시 테이블에 모든 튜플을 추가하여 해당 테이블을 작성하십시오. 모든 튜플이 소비 된 후 해시 테이블을 한 번 반복하여 등호 그룹을 출력합니다 (모든 왼쪽 튜플 또는 모든 오른쪽 튜플 또는 등호 그룹의 모든 왼쪽 튜플과 모든 오른쪽 튜플의 교차 곱).

후자의 알고리즘은 클라이언트 작업과 같은 메모리 작업 부하에 유용합니다. 전자는 대단히 (또는 예측할 수 없을 정도로) 큰 프로브 입력에 적합하므로 RDBMS는이를 사용합니다.

관련 문제