Sql server &引用;“死锁受害者”;在事务中,如何更改优先级?
我记录了ASP.NET应用程序引发的异常 消息:事务(进程ID 56) 在锁定通信上陷入僵局 使用另一个进程缓冲资源 并被选为死锁 受害者。重新运行事务 我确信这样做的原因是,我在SSMS中直接对同时在应用程序中查询的表运行了一些Sql server &引用;“死锁受害者”;在事务中,如何更改优先级?,sql-server,tsql,deadlock,ssms,database-deadlocks,Sql Server,Tsql,Deadlock,Ssms,Database Deadlocks,我记录了ASP.NET应用程序引发的异常 消息:事务(进程ID 56) 在锁定通信上陷入僵局 使用另一个进程缓冲资源 并被选为死锁 受害者。重新运行事务 我确信这样做的原因是,我在SSMS中直接对同时在应用程序中查询的表运行了一些select 现在我的问题是: 我可以更改SQL Server选择“死锁受害者”的优先级吗?我想选择“我自己”(SSMS)作为死锁受害者,而不是ASP.NET,因为它是一个时间关键型应用程序,对我来说,重新运行手动查询比让用户接受错误更容易 提前谢谢。允许您微调优先
select
现在我的问题是:
- 我可以更改SQL Server选择“死锁受害者”的优先级吗?我想选择“我自己”(SSMS)作为死锁受害者,而不是ASP.NET,因为它是一个时间关键型应用程序,对我来说,重新运行手动查询比让用户接受错误更容易
谢谢。这意味着我可以将其更改为
Low
,以降低SSMS查询的优先级?那对我会有用的。是否有其他选项可以微调死锁优先级?我已经读到SQLServer在默认情况下选择死锁受害者来回滚事务。是吗?@Tim Schmelter:对于SSMS查询,选择“低”。没有其他选择。根据上面我的链接,选择最少资源回滚的受害者:“如果两个会话具有相同的死锁优先级,SQL Server实例将选择成本较低的会话作为死锁受害者进行回滚。”MS Dynamics NAV为不允许在其C/AL代码中更改此项表示感谢。如果是在用户和无人参与的进程(失败时可以重试)之间,我希望无人参与的进程“丢失”。