2016-12-14 46 views
1

在我們的C#應用​​程序中,我們沒有設置隔離級別,所以我假定默認的隔離級別爲Read Committed。然而在一個僵局,我們可以看到應用程序的那lockmode是數據庫事務期間隔離級別是否會發生變化?

的IsolationLevel = 「序列化(4)」

什麼意思通過序列化(4)?在事務過程中,隔離級別是否會自動轉換爲其他值?

+0

在死鎖期間如何查看應用程序中的事務隔離級別? –

+0

不,隔離級別不會自行更改。是的,您可以通過顯式的「SET TRANSACTION ISOLATION LEVEL」或通過​​在「FROM」子句中應用表提示來更改事務中的隔離級別。但更可能的意外的隔離級別的原因是獲得早期有可序列化的事務的池連接:[隔離級別未重置](https://connect.microsoft.com/SQLServer/feedback/details/243527/sp -reset連接-犯規-復位隔離級)。如果您想確定,請務必明確設置。 –

+0

@RossBush,我們從DBA那裏得到了死鎖日誌,裏面有進程和死鎖資源列表 – Antoops

回答

1

爲了幫助他人,我發佈了我們找到的解決方案。我們在TransactionScope及其默認構造函數的幫助下使用事務。它的默認隔離級別是,可序列化的這引起了混淆。現在糾正它明確使用Read Committed作爲隔離級別。