【PostgreSQLチューニング】遅いSQLクエリをみつけるログ設定

ボトルネックになっているSQLを見つけようと設定したときのメモ。

環境はCentOS 5.4, PostgreSQL 8.4.2

インストールの方法は前の記事を参考に。

ログ設定で参考になったのは下記

@IT 第3回 PostgreSQLを遅くしている犯人はどこだ?

コンパイル直後はログの設定が無効になっているので、/usr/local/pgsql/data/postgresql.confを編集する

log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_truncate_on_rotation = on
log_rotation_age = 1d #1日ごとにrotation
log_rotation_size = 10MB
log_min_duration_statement = 3s #3秒を超えたらログ出力

それぞれコメントアウトをして有効にする。最後のlog_min_duration_statementで設定した秒数を超えるクエリをログに出力してくれる。

ログファイルは/usr/local/pgsql/data/pg_logに出力される。