繁体   English   中英

事务空闲并使用 PostgreSQL 锁定

[英]Idle in transaction and lock with PostgreSQL

我有一个被锁定的查询。 因此我的网络应用程序被锁定,我真的不明白为什么。

看着 PgAdmin 我有这个:

活动

如果我理解正确,橙色查询已被上面的查询阻止(处于“事务空闲”状态)。

这是否意味着未提交“事务空闲”事务? 是不是因为没有提交另一个事务被锁定?

如果我提交“交易空闲”交易,它会解锁锁定的交易吗?

说实话,我真的不明白我应该如何解释这一点。 你能帮助我吗 ?

您的假设是正确的。 “交易中的闲置”是指会话(在本例中为PID = 16686)开始了交易,并在商品goodscontract表上保留了一些锁。

请注意,您看到的PID = 16686的选择很可能不是阻止更新的语句(Postgres中的读取器未阻止写入器)。 PID = 16686很可能以前运行了获取锁的其他语句(或者select包含for update子句-因为您的屏幕快照未显示完整的语句,这是无法告诉的)。

通常,强烈建议尽快结束事务(使用commitrollback )-包括仅select s的只读事务。

postgresql.conf 上需要更新两件事

idle_transaction_timeout

共享内存

将解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM