我们最近将服务器升级到 SQL Server 2008 R2。服务器一直在运行 SQL Server 2005。我们正在使用
- 事务复制
- 生产服务器上的管理数据仓库和数据收集器
我们开始在应用程序日志中看到死锁错误。这在 SQL 2005 中没有发生。
在报告数据库上,我可以使用“ad-hoc”查询复制死锁,并在活动表上进行内部连接和表扫描。但是,我可以运行需要几分钟才能完成的报告过程,而不会出现任何问题。
sql 2008 对 sql 2005 的死锁更敏感吗?我将开始撤消我们已经实施和测试的一些更改。在我走这条路之前,我想看看其他人是否注意到升级到 2008 R2 时死锁增加了。
“对死锁的敏感性”不是特定于版本的。它与并发和争用有关。有关死锁的更多信息,请参阅此 BOL 参考。
有某些因素会影响死锁,例如事务隔离级别和锁升级。这些是可配置的设置,会影响在某些情况下是否以及何时会发生死锁。
您需要进行一些调查才能找出为什么会出现更多僵局。但要回答您的问题,它并不特定于 SQL Server 的版本。
至于死锁进程,当SQL Server遇到死锁时,它会选择一个牺牲品,从而完成无法解决的并发情况。