加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – SQL事务处于死锁状态

发布时间:2020-12-12 16:18:29 所属栏目:MsSql教程 来源:网络整理
导读:有时我得到这种异常不是很忙的SQL服务器: Transaction (Process ID 57) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.Line number: 1Error Number: 1205Procedure: Server na
有时我得到这种异常不是很忙的SQL服务器:
Transaction (Process ID 57) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Line number: 1
Error Number: 1205
Procedure: 
Server name: P01
Error Source: .Net SqlClient Data Provider
Error State: 47

我无法再现它.我试图在同一时间从不同的客户端运行多个查询,但没有显示.
在程序或内部触发器中发生这种问题的最佳方法是什么?我的意思是,如何重新运行交易?

当由触发器调用的过程中发生异常时,如何执行此操作,该过程由某些过程(即:procedure01 – > insert – > trigger – > procedure02!)进行的插入调用.

解决方法

我建议你从两个角度来解决问题.

> Trap or Catch死锁错误,以便您可以重新运行由SQL Server数据库引擎选择为死锁受害者的事务.
找出导致死锁事件的原因.
您可以通过以下两种方式之一执行此操作:运行SQL Server Profiler跟踪以捕获并记录死锁事件,或者可以启用一些将会将死锁事件的详细信息记录到SQL Server错误日志的SQL Server Trace Flags.

在绝大多数情况下,您可以识别死锁事件的原因,并通过数据库模式的结构性更改或对死锁事件负责的逻辑更改进行修复.

进一步阅读请看:

> How to track down Deadlocks Using SQL Server Profiler
> Minimizing Deadlocks
> Detecting and Ending Deadlocks

我希望我已经回答了你的问题,但是让我知道,如果我能以任何方式进一步帮助你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读