就像 SQL Server 中的 MEMO 结构一样,它是优化器在优化查询时所采取的步骤的“书面记录”。PostgreSQL 是否有类似的结构来记录优化器所采取的步骤?
不,没有详细的优化器审计/报告结构或功能。
你最好的工具是“gdb”。与 MS SQL Server 不同,PostgreSQL 是开源的;您可以在启用调试符号的情况下进行构建,附加调试器,并准确跟踪它正在做什么。
当然,这并不意味着这很容易。一组固定的断点和 gdb 宏来生成规划器/优化器正在执行的操作的跟踪将非常好。目前我还不知道有任何这样的工具。
gdb的跟踪点或perf用户空间跟踪点对您非常有用。
您还可以启用详细的调试日志记录和一些跟踪参数,然后postgresql.conf检查生成的详细日志文件。
PostgreSQL 开发人员常见问题解答中有一些文档(我在其中添加了有关转储计划树等的信息):https: //wiki.postgresql.org/wiki/Developer_FAQ。这可能有用。您还应该阅读主要的开发人员文档。
| 归档时间: |
|
| 查看次数: |
673 次 |
| 最近记录: |