2진 조인 정보

db2expln 명령의 출력에는 Explain문의 조인에 대한 정보가 포함될 수 있습니다.

2진 조인이 수행될 때마다 다음 명령문 중 하나가 표시됩니다.
   Hash Join
   Merge Join
   Nested Loop Join
왼쪽 외부 조인은 다음의 명령문 중 하나로 표시됩니다.
   Left Outer Hash Join
   Left Outer Merge Join
   Left Outer Nested Loop Join

병합 또는 중첩된 루프 조인의 경우 조인의 외부 테이블은 이전 액세스 명령문에 참조된 테이블입니다(출력에 표시됨). 조인의 내부 테이블은 조인 명령문의 범위 내에 포함된 액세스 명령문에 참조된 테이블입니다. 해시 조인의 경우 액세스 명령문은 반대가 됩니다. 외부 테이블이 조인 범위 내에 포함되고 내부 테이블이 조인 이전에 표시됩니다.

해시 또는 병합 조인의 경우 다음의 추가 명령문이 표시될 수 있습니다.
  •    Early Out: Single Match Per Outer Row
    조인이 내부 테이블의 행이 외부 테이블의 현재 행과 일치하는지 판별해야 하는 경우가 있습니다.
  •    Residual Predicate(s)
       |  #Predicates = n
    조인이 완료된 후 술어를 적용할 수 있습니다. 이 명령문은 적용되는 술어의 수를 표시합니다.
해시 조인의 경우 다음의 추가 명령문이 표시될 수 있습니다.
  •    Process Hash Table For Join
    해시 테이블은 내부 테이블에서 빌드됩니다. 내부 테이블에 액세스하는 중 해시 테이블 빌드가 술어로 푸시다운된 경우 이 명령문이 표시됩니다.
  •    Process Probe Table For Hash Join
    외부 테이블에 액세스하는 중에 프로브 테이블을 빌드하여 조인 성능을 향상시킬 수 있습니다. 외부 테이블에 액세스하는 중에 프로브 테이블이 빌드된 경우 이 명령문이 표시됩니다.
  •    Estimated Build Size: n
    이 명령문은 해시 테이블을 빌드할 때 필요한 추정 바이트 수를 표시합니다.
  •    Estimated Probe Size: n
    이 명령문은 프로브 테이블을 빌드할 때 필요한 추정 바이트 수를 표시합니다.
중첩된 루프 조인의 경우 다음 명령문이 조인 명령문 바로 뒤에 표시될 수 있습니다.
   Piped Inner
이 명령문은 조인의 내부 테이블이 다른 일련의 연산으로 인한 결과임을 표시합니다. 이 테이블을 복합 내부라고도 합니다.
조인에 여러 개의 테이블이 관련된 경우 Explain 단계는 맨 위부터 맨 아래로 읽어야 합니다. 예를 들어, Explain 출력에 다음의 순서가 있다고 가정해봅니다.
   Access ..... W
   Join
   |  Access ..... X
   Join
   |  Access ..... Y
   Join
   |  Access ..... Z
실행 단계는 다음과 같습니다.
  1. W 테이블에서 규정 행을 가져오십시오.
  2. W의 행을 X 테이블의 다음 행과 조인하고 결과 P1을 호출하십시오(부분 조인 결과 번호 1의 경우).
  3. P1을 Y 테이블의 다음 행과 조인하여 P2를 작성하십시오.
  4. P2를 Z 테이블의 다음 행과 조인하여 하나의 전체 결과 행을 작성하십시오.
  5. Z에 추가 행이 있는 경우 4단계로 이동하십시오.
  6. Y에 추가 행이 있는 경우 3단계로 이동하십시오.
  7. X에 추가 행이 있는 경우 2단계로 이동하십시오.
  8. W에 추가 행이 있는 경우 1단계로 이동하십시오.