PGでクエリの計画と解析の手順をベンチマークしようとしています。
EXPLAIN ANALYZE
の最初の実行のみがPlanning time
セクションで高い値を報告しているようです。その後、1ms未満です。これをオフにするにはどうすればよいですか?EXPLAIN ANALYZE
で考慮されていないことを明確に述べています。クエリの解析にかかった時間を報告する他のコマンド/ツールはありますか?EXPLAIN ANALYZEで示される計画時間は、解析されたクエリからクエリプランを生成して最適化するのにかかった時間です。解析や書き換えは含まれません。
実際に準備された計画はキャッシュされません(準備されたステートメントを使用している場合を除く)。しかし、計画を立てるために検索する必要があるすべてのメタデータをキャッシュします。したがって、元の計画時間には、そのすべてのメタデータを読み取るのにかかった時間が含まれます。
実験目的でキャッシングを無効にしたい場合、最も簡単な方法は、psql
を閉じて、すべての実験の間に再び開くことです。
インストルメンテーションの場合、 log_statement_stats またはその類縁を使用して、parse-plan-executeプロセスの各ステップの時間を計ることができます。あなたもすることができます set client_min_messages = log
これにより、これらのレポートされた統計は、サーバーログファイルからフェッチする必要がなく、psql画面に直接表示されます。これらのいずれかを設定するには、スーパーユーザーになる必要があります。