簡體   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