Comment plonger dans l'optimiseur de PostgreSQL et suivre chaque étape nécessaire pour optimiser la requête?


8

Tout comme la structure MEMO dans SQL Server qui est une sorte de "trace papier" des étapes que l'optimiseur prend pour optimiser la requête. PostgreSQL a-t-il la même structure qui enregistre les étapes de l'optimiseur?

Réponses:


3

Non, il n'y a pas de structure ou de fonction d'audit / de rapport d'optimiseur détaillée.

Votre meilleur outil est «gdb». Contrairement à MS SQL Server, PostgreSQL est open source; vous pouvez simplement construire avec les symboles de débogage activés, attacher un débogueur et suivre exactement ce qu'il fait.

Cela ne veut pas dire que c'est facile, bien sûr. Un ensemble de points d'arrêt et de macros gdb pour produire une trace de ce que font le planificateur / optimiseur serait très bien. Je ne connais pas un tel outil à ce stade.

gdbLes points de trace, ou perfpoints de trace de l'espace utilisateur, vous seront très utiles.

Vous pouvez également activer la journalisation détaillée du débogage et certains des paramètres de trace, postgresql.confpuis examiner les fichiers journaux détaillés résultants.

Il y a de la documentation (à laquelle j'ai ajouté des informations sur le vidage des arborescences de plan, etc.) dans la FAQ du développeur PostgreSQL: https://wiki.postgresql.org/wiki/Developer_FAQ . Cela peut être utile. Vous devriez également lire les principaux documents destinés aux développeurs.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.