sql >> Database >  >> RDS >> PostgreSQL

Hoe alle optimalisaties van PostgreSQL uit te schakelen?

Dat kan niet.

De queryplanner van PostgreSQL heeft geen vlag "optimalisatie uitschakelen".

Het zou interessant zijn om toe te voegen, maar zou de regressietests een stuk ingewikkelder maken en van zeer beperkt nut zijn.

Om te doen wat je wilt, denk ik dat je de queryplanner-code moet wijzigen, PostgreSQL voor elke test opnieuw moet compileren en opnieuw installeren. Of hack het om een ​​aantal aangepaste GUC's toe te voegen (systeemvariabelen, zoals enable_seqscan ) om u bepaalde optimalisaties aan en uit te laten zetten.

Ik betwijfel of een dergelijke patch zou worden geaccepteerd in PostgreSQL, maar het zou de moeite waard zijn om het als een wegwerpartikel te doen.

De enige uitdaging is dat PostgreSQL geen sterk onderscheid maakt tussen "optimalisatie" en "wat we doen om de query uit te voeren". Soms verwachten delen van de plannercode en vereisen dat een bepaalde optimalisatie is toegepast om correct te werken.




  1. Postgresql sorteren van gemengde alfanumerieke gegevens

  2. De meest elegante manier om permutaties in SQL-server te genereren

  3. ST_HexagonGrid geom vector om alle punten te vinden

  4. Detecteer dubbele items in recursieve CTE