Debugging

如何調試 SQL Server 2008 R2 中的死鎖?

  • September 8, 2016

我正在使用 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/

引用自:https://dba.stackexchange.com/questions/25030