PostgreSQLのオプティマイザーに飛び込み、クエリを最適化するために必要な各ステップをトレースする方法は?


8

SQL ServerのMEMO構造のように、オプティマイザがクエリを最適化するために実行するステップの「ペーパートレイル」のようなものです。PostgreSQLは、オプティマイザが取るステップを記録する同様の構造を持っていますか?

回答:


3

いいえ、オプティマイザの監査/レポートの詳細な構造や機能はありません。

あなたの最高のツールは「gdb」です。MS SQL Serverとは異なり、PostgreSQLはオープンソースです。デバッグシンボルを有効にしてビルドし、デバッガーをアタッチして、デバッガーが実行していることを正確に追跡できます。

もちろん、それが簡単なわけではありません。プランナー/オプティマイザが行っていることのトレースを作成するためのブレークポイントとgdbマクロの缶詰のセットは非常に素晴らしいでしょう。現時点では、そのようなツールは知りません。

gdbのトレースポイント、またはperfユーザー空間のトレースポイントは、非常に役立ちます。

詳細なデバッグロギングと一部のトレースパラメータを有効にしてpostgresql.conf、結果の詳細なログファイルを調べることもできます。

PostgreSQL開発者向けFAQには、いくつかのドキュメント(プランツリーのダンプなどに関する情報を追加しました)があります。https : //wiki.postgresql.org/wiki/Developer_FAQ。これは便利かもしれません。また、メインの開発者ドキュメントも読む必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.