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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |