Knoten HSJOIN

Dieser Knoten stellt Hash-Joins dar, für die die qualifizierten Zeilen aus Tabellen verschlüsselt werden.

Knotenname: HSJOIN

Bedeutung: Ein Hash-Join, für den die qualifizierten Zeilen aus Tabellen verschlüsselt werden, um einen direkten Join zu ermöglichen, ohne den Inhalt zuvor in eine bestimmte Reihenfolge zu bringen.

Ein Join ist erforderlich, wenn in einer Klausel FROM auf mehrere Tabellen verwiesen wird. 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 aufweisen. Hash-Joins können sich auch aus einer neu erstellten Unterabfrage ergeben, wie dies bei NLJOIN der Fall ist.

Bei einem Hash-Join müssen die Eingabetabellen nicht in einer bestimmten Reihenfolge vorliegen. Der Join wird durchgeführt, indem die innere Tabelle des Hash-Joins durchsucht und durch Hashing der Joinspaltenwerte eine Suchtabelle generiert wird. Anschließend wird die äußere Tabelle gelesen, wobei ein Hashing der Joinspaltenwerte erfolgt und anhand der Suchtabelle, die für die innere Tabelle generiert wurde, eine Überprüfung vorgenommen wird.

Vorschläge zur Leistungsverbesserung:
  • Verwenden Sie lokale Vergleichselemente, also Vergleichselemente, die auf eine Tabelle verweisen, um die Anzahl der zu verknüpfenden Zeilen zu verringern.
  • Vergrößern Sie den Sortierspeicher so, dass er die Hashsuchtabelle aufnehmen kann.
  • Sind die Statistikdaten nicht aktuell, aktualisieren Sie sie mit dem Befehl runstats.

Feedback