sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man inaktiverar alla optimeringar av PostgreSQL

Du kan inte.

PostgreSQL:s frågeplanerare har ingen flagga för "stäng av optimering".

Det skulle vara intressant att lägga till, men skulle göra regressionstesterna mycket mer komplexa och vara av mycket begränsad användbarhet.

För att göra vad du vill tror jag att du skulle vilja ändra frågeplanerarens kod, kompilera om och installera om PostgreSQL för varje test. Eller hacka den för att lägga till ett gäng anpassade GUC:er (systemvariabler, som enable_seqscan ) så att du kan slå på och av särskilda optimeringar.

Jag tvivlar på att någon sådan patch skulle accepteras i PostgreSQL, men det skulle vara värt att göra det som en släng.

Den enda utmaningen är att PostgreSQL inte skiljer starkt mellan "optimering" och "sak vi gör för att exekvera frågan". Ibland förväntar delar av planerarkoden och kräver att en viss optimering har tillämpats för att fungera korrekt.




  1. Magento BestSeller Module - summera konfigurerbara produkter och lägga till dem igen

  2. Tortoise ORM för Python ingen returrelationer för enheter (Pyndantic, FastAPI)

  3. sql group_concat och subquery

  4. Hur kan jag upptäcka att en skapa-, uppdaterings-, raderingsfråga lyckades i Codeigniter