2012-07-25 43 views
0

我被推薦儘快關閉休眠事務。有人可以告訴我爲什麼這是建議?爲什麼建議儘快關閉休眠事務?

[請讓這個問題從我以前的一個不同,如前一個我基本上談論會話連接,但現在我在談論交易]

+2

所有交易通常應「儘快」關閉。這確保了可能阻止其他讀者/作者的任何鎖被釋放。 – 2012-07-25 22:37:22

+0

@因爲事務確保了ACID屬性,事務是否總是涉及到鎖定表? – TimeToCodeTheRoad 2012-07-25 23:19:58

+0

不,它不。它取決於隔離級別,執行的操作以及底層數據庫(和選項)。 – 2012-07-25 23:31:50

回答

1

共享狀態/數據之間的任何互動多線程環境應儘可能短以減少其他線程可能無法處理其工作的鎖保持時間。關閉一個事務可以釋放這樣一個鎖(或多個鎖),並允許該程序執行其他工作,在事務處於打開狀態時它不能執行其他工作,因爲事務可能在關閉前觸及共享數據。

請注意,某些類型的事務(在抽象的sesnse中)是無鎖的,但這些可能不是您正在處理的內容。