Debugging slow PostgreSQL queries

Ellie Huxtable

PostgreSQLのスロークエリをデバッグする

原文は Ellie Huxtable により に公開されました。 このブログを購読する

今日、時折発生するレイテンシのスパイクの原因を調べていました。スロークエリがあって最適化が必要なのではと思ったのですが、確認するにはスロークエリのログを有効にする必要がありました。

Postgresで100ms以上かかるステートメントをすべてログに残したい場合は、設定ファイルに以下を追加してください。

log_min_duration_statement = 100

その後、次のコマンドでPostgresの設定を再読み込みします。

select pg_reload_conf();

サーバーの再起動は不要です!

他にも、以下のオプションが役に立つことがあります。

# Log all statements, not just the slow ones
# This may be very chatty, so make sure your log partition doesn't fill up
log_statement = all/ddl/none
# Log durations alongside statements
log_duration = on

以前の職場では、Postgresのパフォーマンス分析にpganalyzeがとても優れていると感じました。導入には追加のセットアップが少し必要で、有料ではありますが、Postgresを多用しているならぜひおすすめします!

それ以外で、Postgresの設定オプションを調べるのにお気に入りのリソースはpostgresqlco.nfです。利用可能なオプションを眺めるのに便利で、どれが再起動を必要とするかも分かりやすく表示されます。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。

コメント