PostgreSQLには log_min_duration_statement というパラメータがある。
指定した時間以上かかったSQLをログに出力するため、性能問題の調査でよく利用される。
この値を小さくし過ぎると大量のログが出力されるため、
適切な値を設定する必要がある。
実際の現場で、log_min_duration_statement の設定変更後に動作確認を行った。
しかし、対象となるSQLが1件もなく、
「ログが出力されないこと」を確認しただけで終了しようとしていた。
が、この場合は 以下のSQLを実行すれば 簡単に確認できる。
SELECT pg_sleep(1); -- 1秒スリープ(出力されるように値を調整)
※実際の業務SQLではないが、ログ出力の確認用として利用できる。
動作確認では「期待する結果が出ないこと」だけではなく、
「期待する結果が出ること」を確認することが重要である。
「正常に動かないこと」を確認するだけでなく、
「正常に動くこと」を確認して初めて動作確認と言えます。
簡単なSQLを1本知っているだけで、検証が非常に楽になる。
補足(より深く学びたい方へ)
PostgreSQLの性能調査を体系的に学びたい方は
今回のような「性能問題の原因分析」やチューニングの具体的な
手順について、講座で体系的に解説しています。
https://www.udemy.com/course/postgresql-sql/?referralCode=64B372729B6BC0073ACB