タイプ: integer
デフォルト: 0 (0ms)
分: 0 (0ms)
最大: 2147483647 (2147483647ms)
単位: milliseconds (ms)
コンテキスト: user
再起動: false

コマンドがクライアントからサーバに届いた時から数えて、実行時間が指定された時間を越えた文を停止します。log_min_error_statementERRORもしくはそれ以下に設定されている場合は、タイムアウトした文はログに書き込まれます。この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。値がゼロ(デフォルト)の場合、これを無効にします。

タイムアウトは、コマンドがサーバに到着したときから、サーバがそのコマンドの実行を完了するまでを基準にします。拡張問い合わせでは、タイムアウトは問い合わせに関するメッセージ(Parse、Bind、Execute、Describe)が到着したときに開始し、ExecuteあるいはSyncメッセージが完了した時にキャンセルされます。

すべてのセッションに影響することがあるので、postgresql.conf内でstatement_timeoutを設定することは推奨されません。

推奨事項 [EN]

Defaults to 0, meaning no timeout. For most web applications, it's a good idea to set a default timeout, such as 60s to prevent runaway queries from bogging the server. If set, though, you need to remember to set (at the ROLE or session level) a higher statement_timeout for expected long-running maintenance or batch operations.

件のコメント