0
我的預定作業每天工作6次。 有時候它的失敗原因是死鎖。我試圖找出誰阻塞我的會議。SQL Server死鎖
我搜索了,我發現sql分析器,但它沒有顯示確切的結果。如何用T-SQL或其他方式識別歷史?
當失敗所示作業錯誤消息belown,
交易(進程id)被死鎖的鎖資源與另一個過程和已被選作死鎖犧牲品。重新運行交易。
我的預定作業每天工作6次。 有時候它的失敗原因是死鎖。我試圖找出誰阻塞我的會議。SQL Server死鎖
我搜索了,我發現sql分析器,但它沒有顯示確切的結果。如何用T-SQL或其他方式識別歷史?
當失敗所示作業錯誤消息belown,
交易(進程id)被死鎖的鎖資源與另一個過程和已被選作死鎖犧牲品。重新運行交易。
這將有助於確定死鎖受害者或死鎖的原因:https://ask.sqlservercentral.com/questions/5982/how-can-i-identify-all-processes-involved-in-a-dea.html
如果你想減少你的進程死鎖這裏的風險是一些戰略...
嘗試插入/ UPDATE/DELETE表以相同的順序。例如。如果一個進程是這樣做的:
BEGIN TRAN; UPDATE TableA; UPDATE TableB; COMMIT;
,而另一個過程是這樣做的:
BEGIN TRAN; UPDATE TableB; UPDATE TableA; COMMIT;
存在一種風險,即一個進程將死鎖等。完成時間越長,死鎖的風險就越高。 SQL Server將隨機選擇一個進程作爲「死鎖受害者」。
感謝您的解釋尼克。祝你有美好的一天。 – Oracsql
不客氣! –