1日に実行される各クエリの実行時間を記録したい。
たとえば、このように、
2012-10-01 13:23:38 STATEMENT: SELECT * FROM pg_stat_database runtime:265 ms.
ガイドラインを教えてください。
1日に実行される各クエリの実行時間を記録したい。
たとえば、このように、
2012-10-01 13:23:38 STATEMENT: SELECT * FROM pg_stat_database runtime:265 ms.
ガイドラインを教えてください。
設定した場合
log_min_duration_statement = 0
log_statement = all
postgresql.conf で、すべてのステートメントが Postgres ログファイルに記録されていることを確認できます。
有効にすると
log_duration
また、各ステートメントにかかった時間も出力されます。デフォルトではオフになっています。
log_statement
パラメーターを使用して、ログに記録するステートメントのタイプ(DDL、DML など) を制御できます。
これにより、ログファイルに次のような出力が生成されます。
2012-10-01 13:00:43 CEST postgres ログ: ステートメント: pg_class からカウント (*) を選択します。 2012-10-01 13:00:43 CEST postgres ログ: 期間: 47.000 ミリ秒
マニュアルの詳細:
毎日のリストが必要な場合は、ログファイルを毎日ローテーションするように構成することをお勧めします。繰り返しますが、これはマニュアルに記載されています。
OPは実際にはタイムスタンプではなく実行期間を要求していたと思います。
ログ出力に期間を含めるには、 を開きpgsql/<version>/data/postgresql.conf
、次の行を見つけます。
#log_duration = off
そしてそれをに変更します
log_duration = on
指定されたパラメータが見つからない場合は、ファイルの新しい行に追加してください。
変更を保存したら、postgresql サービスを再起動するか、単に呼び出します
pg_ctl reload -D <path to the directory of postgresql.conf>
例えば
pg_ctl reload -D /var/lib/pgsql/9.2/data/
設定をリロードします。