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

So deaktivieren Sie alle Optimierungen von PostgreSQL

Das kannst du nicht.

Der Abfrageplaner von PostgreSQL hat kein Flag "Optimierung deaktivieren".

Es wäre interessant hinzuzufügen, würde aber die Regressionstests viel komplexer machen und von sehr begrenztem Nutzen sein.

Um das zu tun, was Sie wollen, sollten Sie den Code des Abfrageplaners ändern, PostgreSQL für jeden Test neu kompilieren und neu installieren. Oder hacken Sie es, um eine Reihe benutzerdefinierter GUCs (Systemvariablen wie enable_seqscan) hinzuzufügen ), damit Sie bestimmte Optimierungen ein- und ausschalten können.

Ich bezweifle, dass ein solcher Patch in PostgreSQL akzeptiert würde, aber als Wegwerfartikel wäre es das wert.

Die einzige Herausforderung besteht darin, dass PostgreSQL nicht stark zwischen „Optimierung“ und „was wir tun, um die Abfrage auszuführen“ unterscheidet. Manchmal erwarten Teile des Planercodes und erfordern dass eine bestimmte Optimierung angewendet wurde, um korrekt zu funktionieren.