10

READ_COMMITTED_SNAPSHOT ON在 SQL Server 2008中设置的优缺点是什么?

实际上我正在解决事务死锁的问题,但是通过设置READ_COMMITTED_SNAPSHOT ON和禁用锁升级(仅在导致死锁的事务中使用的表上)。这样就解决了大约 90% 的死锁问题;但我担心它可能还有其他一些问题,例如性能等。

任何帮助将不胜感激。

4

1 回答 1

14

RCSI 的好处:

  • 在查询开始时提供一致的数据视图
  • 无阻塞
  • 更少的锁定/升级

然而,这不是免费的。tempdb 用于保存它所谓的“版本存储”。这可能意味着:

  • 增加 tempdb 的空间和 I/O 要求以维护版本
  • 如果长时间运行的事务需要长期保存版本和/或存在多个版本,则可能会降低性能

此外,行版本信息每行增加 14 个字节。

RCSI 的常见替代方案通常涉及将写入活动与报告分开。这可以通过各种 HA 技术来完成,例如 SQL Server 2012 中的日志传送、镜像 + 快照或可用性组 + 只读辅助节点。

一些官方文档参考:

于 2012-06-04T03:15:13.900 回答