在PostgreSQL中,“lock_timeout”的替代选项是什么?

slmsl1lt  于 2023-01-08  发布在  PostgreSQL
关注(0)|答案(2)|浏览(113)

我需要杀死我的会话,如果我阻塞了其他会话。但到目前为止,我们只有一个选项,杀死自己的会话被其他会话阻塞使用lock_timeout。如果我们的会话阻塞了其他会话,而不是自己的会话被其他人阻塞,我们是否有在postgres中超时自己的会话的选项?

tktrz96b

tktrz96b1#

您应该设置idle_in_transaction_session_timeoutstatement_timeout,这样,如果阻塞会话运行的语句太长,并且在数据库事务中挂起空闲状态,它就会被终止。

xqnpmsa8

xqnpmsa82#

statement_timeout是另一个选项= PostgreSQL中的lock_timeout:
中止花费超过指定时间的任何语句。
例如,SELECT pg_sleep(30);在10秒后超时,如下所示:

postgres=# SET statement_timeout to 10000;
SET
postgres=# SELECT pg_sleep(30);
ERROR:  canceling statement due to statement timeout

相关问题