SQL-Abfragereihenfolge bei Vorgängen und Delegierung

Die SQL-Abfragereihenfolge bei Vorgängen bezieht sich auf die Vorgehensweise von Spectrum Spatial (oder einem beliebigen Abfrageprozessor, der einen Ausführungsplan generiert) beim Auflösen einzelner Klauseln in der Abfrage.

Delegierung setzt sich aus einer Reihe von Regeln zusammen, die erklären, welche Abfrage an den Datenquellenanbieter übergeben werden kann. Auf diese Weise muss Spectrum Spatial nicht die gesamte Verarbeitung durchführen. Wenn der Datenquellenanbieter den Vorgang unterstützt, kann die Abfrage delegiert werden, vorausgesetzt, sie entspricht den Delegierungsregeln.

Wenn Sie die Reihenfolge der Vorgänge und die Vorgehensweise zum Sortieren der Vorgänge in einer Abfrage kennen, können Sie aussagekräftige Abfragen ohne Beeinträchtigung der Leistung erstellen.

Eine typische SQL-Abfrage wird wie folgt geschrieben:
select city, avg(hhinc) FROM table WHERE state='ny' GROUP BY city ORDER BY city

Im Folgenden wird die Reihenfolge der Vorgänge dargestellt, die bei Auswertung der Abfrage auftritt.

[FROM table] [WHERE state='ny'] [SELECT city, avg(hhinc) GROUP BY city] [ORDER BY city]

Beachten Sie, dass vor dem Filtern von Status = „ny“ die Zeilen ausgewählt werden müssen. Diese Reihenfolge ist für die Delegierung der Arbeit an den Datenquellenanbieter wichtig.

Beispiel: Wenn der Datenquellenanbieter den Operator „=“ der WHERE-Klausel nicht unterstützt, kann die SELECT-Klausel nicht nach den Regeln von Spectrum Spatial delegiert werden. In diesem Fall muss Spectrum Spatial den Vorgang durchführen.

Der größte Vorteil des Delegierens entsteht durch eine gut durchdachte WHERE-Klausel. Wenn die WHERE-Klausel nicht delegiert werden kann, kann auch der Rest der Abfrage nicht delegiert werden. Weitere Informationen zu Regeln für WHERE-Klauseln finden Sie unter Delegierungsregeln: WHERE-Klausel.