Operator HSJOIN

Dieser Operator stellt Hash-Joins dar, für die die qualifizierten Zeilen aus Tabellen mit einem Hashverfahren verarbeitet werden.

Operatorname: HSJOIN

Aufgabe: Stellt einen Hash-Join dar, für den die qualifizierten Zeilen aus Tabellen mit einem Hashverfahren verarbeitet werden, um eine direkte Verknüpfung ohne vorherige Sortierung des Inhalts der Tabellen zu ermöglichen.

Ein Join ist erforderlich, wenn in einer FROM-Klausel mehrere Tabellen angegeben werden. Ein Hash-Join ist möglich, wenn ein Joinvergleichselement vorhanden ist, das Spalten aus zwei verschiedenen Tabellen gleichsetzt. Die Joinvergleichselemente müssen exakt den gleichen Datentyp haben. Hash-Joins können auch aus einer umgeschriebenen Unterabfrage entstehen, wie dies bei NLJOIN der Fall ist.

Bei einem Hash-Join müssen die Eingabetabellen nicht geordnet sein. Der Join wird durchgeführt, indem die innere Tabelle des Hash-Joins durchsucht und eine Referenztabelle generiert wird, indem die Werte der Joinspalten in einen Hashwert umgerechnet werden. Anschließend wird die äußere Tabelle gelesen, wobei die Werte der Joinspalten in Hashwerte umgerechnet und in der Referenztabelle überprüft werden, die für die innere Tabelle generiert wurde.

Vorschläge zur Leistungsverbesserung:
  • Verwenden Sie lokale Vergleichselemente (d. h. Vergleichselemente, die nur auf eine Tabelle verweisen), um die Anzahl der zu verknüpfenden Zeilen zu reduzieren.
  • Erhöhen Sie die Größe des Sortierspeichers, sodass er die Hashreferenztabelle aufnehmen kann.
  • Wenn die Statistikdaten nicht auf dem aktuellen Stand sind, aktualisieren Sie sie mit dem Befehl RUNSTATS.