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
不客气! –