每天我都运行一个sql server脚本来更新我的表。每周一次我成为数据库死锁的受害者。有几个人可以访问数据库,他们都知道他们不应该在更新数据库时访问数据库。但有人在更新过程中访问数据库,我们发生死锁。有没有办法避免成为僵局的受害者?我听说过死锁优先。如果我将死锁优先级设置为10,会有帮助吗?是否有任何性能问题或使用死锁优先级的后果?避免成为数据库死锁的受害者
回答
假设其他进程的死锁优先级小于10,这应该会导致您赢得死锁解决方案。
如果会话具有不同的死锁优先级,则选择具有最低死锁优先级的会话作为死锁受害者。
http://msdn.microsoft.com/en-us/library/ms186736.aspx
当然,你总是可以运行一个脚本中删除其他用户作为更新的时间更新权利......
大多数情况下,它们不会有任何死锁优先级设置,也没有人有权更新数据库中的任何内容。他们只有只读访问权限。使用死锁优先级有什么缺点吗? –
@LitonUddin:如果他们不更新数据,可以考虑他们是否可以使用READ UNCOMMITTED隔离级别。这对他们的任务来说可能是合适的(取决于他们正在阅读的内容和更新的性质),并提供一个干净的解决方案来避免死锁。如果使用正确,我不知道使用DEADLOCK PRIORITY的缺陷。如果多个团队都认为他们当然应该拥有最高优先级,那么这是行不通的。 –
几个人可以访问数据库,他们都知道他们是 不应该访问数据库,而它正在更新
为什么不把你的数据库放在单U ser,做你的更新,并在一次交易中恢复为多用户?
Raj
- 1. 复制SQL Server数据库死锁查询受害者
- 2. 一个进程成为死锁受害者的原因
- 3. 如何避免数据库死锁
- 4. 避免螺旋锁死锁
- 5. 避免并发删除造成死锁
- 6. “死锁受害者”在交易中,如何改变优先权?
- 7. 抢先避免死锁
- 8. 避免死锁示例
- 9. 避免死锁 - 过程
- 10. 避免死锁MySQL/UniDAC/Delphi
- 11. 如何避免mysql死锁?
- 12. 避免sqlite3的数据库锁定
- 13. sqlite3:避免“数据库锁定”冲突
- 14. 避免死锁和防止死锁有什么区别?
- 15. 两个条件变量,避免死锁
- 16. 删除关系时避免死锁
- 17. 交易 - 如何避免死锁?
- 18. 如何避免死锁条件
- 19. JDBC和死锁避免问题(基本)
- 20. 同步方法,以避免死锁
- 21. C# - 如何避免使用TcpClient死锁?
- 22. 通过信号量避免死锁?
- 23. 如何在.NET中避免死锁
- 24. 正确避免R/W文件死锁
- 25. 如何避免这些死锁?
- 26. Rails 4 Racing/Concurrency。避免死锁
- 27. Linux内核如何避免死锁?
- 28. 在处理大量数据时避免死锁和超时
- 29. 获取对两个互斥锁的锁定并避免死锁
- 30. 如何避免缓慢查询造成的死锁
在开始进程之前独占锁定数据库。这将保持它,所以你不会遇到死锁MSFT文章http://msdn.microsoft.com/en-us/library/ms175519(v=sql.105).aspx只要确保完成时清除锁定或失败! – xQbert