我正在使用LINQ到SQL並運行直接SQL查詢 - 選擇語句 - 哪些使用(XQuery)查詢XML列。多個這樣的查詢並行運行,我得到了死鎖異常。死鎖使用LINQ到SQL選擇
運行時select是否獲取某種鎖?還有更新與Serializable隔離級別並行發生。
任何指針如何解決這個問題可能會有所幫助。如何在Linq To SQL中指定NOLOCK?
我正在使用LINQ到SQL並運行直接SQL查詢 - 選擇語句 - 哪些使用(XQuery)查詢XML列。多個這樣的查詢並行運行,我得到了死鎖異常。死鎖使用LINQ到SQL選擇
運行時select是否獲取某種鎖?還有更新與Serializable隔離級別並行發生。
任何指針如何解決這個問題可能會有所幫助。如何在Linq To SQL中指定NOLOCK?
我檢查了它Scott Hanselman's博客文章。以這種方式嘗試的示例
ProductsNewViewData viewData = new ProductsNewViewData();
using (var t = new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions {
IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
}))
{
viewData.Suppliers = northwind.Suppliers.ToList();
viewData.Categories = northwind.Categories.ToList();
}
希望它對您有所幫助。在他的博客文章中閱讀更多內容。
爲什麼你會陷入僵局? SELECT自身不能與另一個SELECT發生死鎖。必須有更多的事情發生。 Capture the deadlock XML graph並在此發佈,以便我們可以幫助您分析它。一旦我們對僵局有所瞭解,我們可以推薦一個解決方案,它幾乎總是您缺少的必需索引。
做不是啓用髒讀(NOLOCK提示或讀取未提交的隔離級別),這是不正確的方法。 Dirty reads are inconsistent reads並返回不正確數據。如果需要,可能需要row versioning-based reads,即how this very site一旦解決了問題。
你能發表一些代碼嗎? – bugged87
你*只是*運行查詢?是否有任何代碼正在更新?從查詢中獲得僵局是非常不尋常的 –