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です。利用可能なオプションを眺めるのに便利で、どれが再起動を必要とするかも分かりやすく表示されます。
記事をランダムに読む
コメント
ログインしてコメントする