タイプ: | integer |
デフォルト: | 0 (0ms) |
分: | 0 (0ms) |
最大: | 2147483647 (2147483647ms) |
単位: | milliseconds (ms) |
コンテキスト: | user |
再起動: | false |
以来: | 9.3 |
テーブル、インデックス、行、またはその他のデータベースオブジェクトに対してロック獲得を試みている最中、指定された時間を超えて待機するいかなる命令も停止されます。時間制限はそれぞれのロック取得の試みに対し個別に適用されます。制限は明示的ロック要求(例えばLOCK TABLE、またはSELECT FOR UPDATE without NOWAIT
など)および暗黙的に取得されるロックに適用されます。この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。値ゼロ(デフォルト)はこの機能を無効にします。
statement_timeoutと異なり、このタイムアウトはロックを待機しているときのみ発生します。命令によるタイムアウトは常に第一に起動されるため、もしstatement_timeoutが非ゼロであればlock_timeout
を同一、もしくはより大きい値に設定するのは的を射ていません。log_min_error_statementがERROR
またはそれより低く設定されると、時間制限を超えた命令はログに記録されます。
lock_timeout
をpostgresql.confにて設定することは、すべてのセッションに影響を与える可能性があるため推奨されません。
推奨事項 [EN]
… but consider setting this per application or per query for any explicit locking attempts.