Debugging
如何調試 SQL Server 2008 R2 中的死鎖?
我正在使用 SQL Server 2008 R2,它會根據我的查詢自動鎖定數據庫項目。
有時這種死鎖 - 具有不同查詢的兩個執行緒永遠不會結束。
有什麼方法可以調試 SQL Server 如何鎖定和解鎖資源?我試過 SQL Trace,但它沒有關於資源鎖的資訊。
“有時這種死鎖 - 具有不同查詢的兩個執行緒永遠不會結束”
您正在經歷的是阻塞,而不是死鎖。當發生死鎖情況時,SQL Server 會自動檢測到它並選擇其中一個查詢作為犧牲品並拋出錯誤 1205。
如果您確實遇到死鎖錯誤,請打開跟踪標誌 1222。它會將死鎖錯誤記錄到 SQL Server 日誌中。
如果您遇到阻塞,請配置“阻塞程序門檻值”(http://msdn.microsoft.com/en-us/library/ms181150(v=SQL.90).aspx)
另請參閱http://www.mssqltips.com/sqlservertip/2429/how-to-identify-blocking-in-sql-server-2005-and-2008/