PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment désactiver toutes les optimisations de PostgreSQL

Vous ne pouvez pas.

Le planificateur de requêtes de PostgreSQL n'a pas d'indicateur "Désactiver l'optimisation".

Ce serait intéressant à ajouter, mais cela rendrait les tests de régression beaucoup plus complexes et serait d'une utilité très limitée.

Pour faire ce que vous voulez, je pense que vous voudriez modifier le code du planificateur de requêtes, recompiler et réinstaller PostgreSQL pour chaque test. Ou piratez-le pour ajouter un tas de GUC personnalisés (variables système, comme enable_seqscan ) pour vous permettre d'activer et de désactiver certaines optimisations.

Je doute qu'un tel correctif soit accepté dans PostgreSQL, mais cela vaudrait la peine d'être jeté.

Le seul défi est que PostgreSQL ne différencie pas fortement entre "l'optimisation" et "la chose que nous faisons pour exécuter la requête". Parfois, des parties du code du planificateur attendent et exiger qu'une optimisation particulière a été appliquée pour fonctionner correctement.