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?
la source
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?
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.
gdb
Les points de trace, ou perf
points 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.conf
puis 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.