DBセッションの中でタイムアウトを設定する方法

statement_timeout

指定されたミリ秒を越えてコマンドがクライアントからサーバに届いたどんなコマンドの実行も停止します。

--SQL実行時間が1秒以上経過したとき自動的にキャンセルされるよう設定

SET statement_timeout TO 1000;

SELECT * FROM test;

ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています



--タイムアウトの設定をリセット

RESET statement_timeout;




lock_timeout

テーブル、インデックス、行、またはその他のデータベースオブジェクトに対してロック獲得を試みている最中、指定されたミリ秒数を超えて待機するいかなる命令も停止されます。

時間制限はそれぞれのロック取得の試みに対し個別に適応されます。 制限は明示的ロック要求(例えばLOCK TABLE、またはSELECT FOR UPDATE without NOWAITなど)および暗黙的に取得されるロックに適用されます。

--ロック取得に1秒以上経過したとき自動的にキャンセルされるよう設定

SET lock_timeout TO 1000;

update test set column1 = ?;

ERROR: ステートメントのタイムアウトによりステートメントをキャンセルしています



--タイムアウトの設定をリセット

RESET lock_timeout;




https://www.postgresql.jp/document/9.3/html/runtime-config-client.html