実行時間ログの設定確認が必要な PostgreSQL

PostgreSQL の実行時間ログは、遅い処理や性能の問題を調査する資料になります。

説明

log_duration は、完了した SQL 文の所要時間を記録します。無効にするとこの記録は残りませんが、別のスロークエリログや性能ツールから時間の情報を得られる場合もあります。log_duration だけを有効にしても、SQL 文そのものが自動的に記録されるわけではありません。

想定される影響

  • 実行時間の記録が不足すると、性能低下の時点や原因を調べにくくなります。
  • 適切な代替の測定手段がない場合、クエリ最適化の効果を比較しにくくなります。

対処方法

  • すべての文の実行時間が必要な場合は、利用中のサービスで log_duration を on にしてください。
  • 遅い文だけが必要な場合は、要件に合う log_min_duration_statement のしきい値を検討してください。
  • ログ量と性能への影響を測定してください。SQL 文も記録する場合は、機密情報とログへのアクセス権を管理してください。

例

最初の例は、2025 年 3 月 28 日に提供が終了した Single Server 用です。次の例は、azure.azcollection 3.18.0 以降で既存の Flexible Server に適用する設定の抜粋です。

変更前

yaml
- name: PostgreSQL 설정 변경
  azure.azcollection.azure_rm_postgresqlconfiguration:
    resource_group: myResourceGroup
    server_name: myServer
    name: log_duration
    value: "off"

log_duration による実行時間の記録を無効にしています。ほかの性能測定ツールを無効にする設定ではありません。

変更後

yaml
- name: PostgreSQL 설정 변경
  azure.azcollection.azure_rm_postgresqlflexibleconfiguration:
    resource_group: myResourceGroup
    server_name: myServer
    name: log_duration
    value: "on"

完了した文の所要時間を記録します。記録量と収集コストを確認し、必要な保持期間を設定してください。

参考資料