Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfragen optimieren und ausführen » Semantische Abfragentransformation

 

Outer-Joins in Inner-Joins konvertieren

Der Optimizer generiert eine links-tiefe Prozessverarbeitungsstruktur für die Zugriffspläne. Die einzige Ausnahme bei dieser Regel ist das Vorhandensein eines Ausdrucks mit einem rechts-tiefen verschachtelten Outer-Join. Für die Algorithmen der Abfrageausführungs-Engine zum Berechnen der Left- oder Right-Outer-Joins müssen in einer Join-Strategie bewahrende Tabellen vor Nullwert-liefernden Tabellen stehen. Daher sucht der Optimierer nach Möglichkeiten, die Left- oder Right-Outer-Joins, sofern möglich, in Inner-Joins zu konvertieren, da Inner-Joins umwandelbar sind und dem Optimierer mehr Freiheit lassen, wenn die Join-Enumeration durchgeführt wird.

Ein Left- oder Right-Outer-Join wird zu einem Inner-Join konvertiert, wenn eine der folgenden Bedingungen wahr ist:

Diese Neuschreibungsoptimierung kann für eine Outer-Join -Abfrage gelten, wenn die Abfrage eine oder mehrere Ansichten referenziert, die unter Verwendung von Outer-Joins geschrieben wurden. Die WHERE-Klausel der Abfrage kann Bedingungen umfassen, die die Ausgabe so einschränken, dass alle Nullwert-liefernden Zeilen aus einem oder mehreren Tabellenausdrücken entfernt werden, und so die Optimierung anwendbar machen.

 Beispiel 1
 Beispiel 2