タイプ: | integer |
デフォルト: | -1 (-1) |
分: | -1 (-1) |
最大: | 2147483647 (2147483647ms) |
単位: | milliseconds (ms) |
コンテキスト: | superuser |
再起動: | false |
文の実行に少なくとも指定した時間かかった場合、それぞれの文の実行に要した時間をログに記録します。この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。0に設定すれば、すべての文の実行時間が出力されます。-1(デフォルト)は、文実行時間の記録を無効にします。例えば、250ms
と設定した場合、250msもしくはそれ以上長くかかった全てのSQL文がログとして残ります。このパラメータを有効にすることにより、アプリケーションで最適化されていない問い合わせを追跡するのが便利になります。スーパーユーザのみこの設定を変更できます。
拡張問い合わせプロトコルを使用するクライアントでは、Parse、Bind、Executeそれぞれの段階で要した時間が独立して記録されます。
このオプションとlog_statementを一緒に使用する時、log_statementによってログされるテキスト文は、実行時間のログには重複されません。syslogを使用していなければ、プロセスIDとセッションIDを使用して、文メッセージと後の実行時間メッセージを関連付けできるように、log_line_prefixを使用してPIDまたはセッションIDをログに記録することを勧めます。
推奨事項 [EN]
Possibly the most generally useful log setting for troubleshooting performance, especially on a production server. Records only long-running queries for analysis; since these are often your "problem" queries, these are the most useful ones to know about. Used for pg_fouine.
On StackOverflow
On pgsql-hackers
- Re: filesystem full during vacuum - space recovery issues
- Re: Send duration output to separate log files
- Re: Fix log_line_prefix to display the transaction id (%x) for statements not in a transaction block
- Re: Add a warning message when using unencrypted passwords
- Send duration output to separate log files