避免成为数据库死锁的受害者

时间:2013-01-10 21:24:09

标签: sql-server database deadlock

我每天都运行一个sql server脚本来更新我的表。每周一次,我成为数据库死锁的受害者。有几个人可以访问数据库,他们都知道在更新时不应该访问数据库。但有人在更新期间访问数据库,我们遇到了死锁。有没有办法可以避免成为僵局的受害者?我听说过死锁优先权。如果我将死锁优先级设​​置为10,会有帮助吗?使用死锁优先级是否存在性能问题或后果?

2 个答案:

答案 0 :(得分:1)

假设其他进程的死锁优先级小于10,这将导致您赢得死锁解析。

  

如果会话具有不同的死锁优先级,则选择具有最低死锁优先级的会话作为死锁牺牲品。

http://msdn.microsoft.com/en-us/library/ms186736.aspx

当然,在更新期间,您始终可以运行脚本从其他用户删除更新权限...

答案 1 :(得分:0)

  

有些人可以访问数据库,他们都知道这些数据库   在更新时不应该访问数据库

为什么不把数据库放在单个用户中,进行更新并在一次交易中恢复为多用户?

拉​​吉