PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Was bedeutet gehashter Unterplan in PostgreSQL?

Sie haben das Missverständnis, dass der Optimierer die SQL-Anweisung umschreibt. Das ist nicht der Fall. Das Umschreiben der Abfrage ist die Aufgabe des Query Rewriter , die beispielsweise Views durch ihre Definition ersetzt. Der Optimierer erstellt eine Folge von Ausführungsschritten, um das Ergebnis zu berechnen. Es erstellt einen Plan , keine SQL-Anweisung.

Der Optimierer sieht zwei Alternativen vor:Entweder Unterplan 1 für jede gefundene Zeile ausführen oder Unterplan 2 einmal ausführen (beachten Sie, dass er unabhängig von a ist ), erstellen Sie eine Hash-Tabelle aus dem Ergebnis und prüfen Sie diesen Hash für jede Zeile, die in a gefunden wird .

Zur Ausführungszeit entscheidet sich PostgreSQL für letztere Strategie, weshalb Teilplan 1 nie ausgeführt wird.