Operator NLJOIN

Dieser Operator stellt einen Join mit Verschachtelungsschleife dar.

Operatorname: NLJOIN

Aufgabe: Stellt einen Join mit Verschachtelungsschleife dar, bei dem (gewöhnlich mithilfe einer Indexsuche) die innere Tabelle einmal für jede Zeile der äußeren Tabelle durchsucht wird.

Ein Join ist erforderlich, wenn in einer FROM-Klausel mehrere Tabellen angegeben werden. Für einen Join mit Verschachtelungsschleife ist kein Joinvergleichselement erforderlich, die Leistung lässt sich jedoch meist durch die Verwendung eines Joinvergleichselements erhöhen.

Ein Join mit Verschachtelungsschleife wird durch eine der beiden folgenden Methoden ausgeführt:
  • Durch Durchsuchen der inneren Tabelle für alle Zeilen der äußeren Tabelle, auf die zugegriffen wird.
  • Durch Ausführen einer Indexsuchfunktion für die innere Tabelle für jede Zeile der äußeren Tabelle, auf die zugegriffen wird.
Vorschläge zur Leistungsverbesserung:
  • Ein Join mit Verschachtelungsschleife ist wahrscheinlich effizienter, wenn es einen Index für die Spalten mit dem Joinvergleichselement der inneren Tabelle (die Tabelle, die rechts neben dem Operator NLJOIN angezeigt wird) gibt. Überprüfen Sie, ob für die innere Tabelle eine Tabellensuche (TBSCAN) anstelle einer Indexsuche (IXSCAN) ausgeführt wird. Wenn eine Tabellensuche ausgeführt wird, sollten Sie vielleicht einen Index für die Joinspalten hinzufügen.

    Eine andere (weniger bedeutsame) Möglichkeit zur Verbesserung des Joins ist das Erstellen eines Index für die Joinspalten der äußeren Tabelle, sodass die äußere Tabelle geordnet wird.

  • Wenn die Statistikdaten nicht auf dem aktuellen Stand sind, aktualisieren Sie sie mit dem Befehl RUNSTATS.