READ_COMMITTED_SNAPSHOT ON
在 SQL Server 2008中设置的优缺点是什么?
实际上我正在解决事务死锁的问题,但是通过设置READ_COMMITTED_SNAPSHOT ON
和禁用锁升级(仅在导致死锁的事务中使用的表上)。这样就解决了大约 90% 的死锁问题;但我担心它可能还有其他一些问题,例如性能等。
任何帮助将不胜感激。
READ_COMMITTED_SNAPSHOT ON
在 SQL Server 2008中设置的优缺点是什么?
实际上我正在解决事务死锁的问题,但是通过设置READ_COMMITTED_SNAPSHOT ON
和禁用锁升级(仅在导致死锁的事务中使用的表上)。这样就解决了大约 90% 的死锁问题;但我担心它可能还有其他一些问题,例如性能等。
任何帮助将不胜感激。
RCSI 的好处:
然而,这不是免费的。tempdb 用于保存它所谓的“版本存储”。这可能意味着:
此外,行版本信息每行增加 14 个字节。
RCSI 的常见替代方案通常涉及将写入活动与报告分开。这可以通过各种 HA 技术来完成,例如 SQL Server 2012 中的日志传送、镜像 + 快照或可用性组 + 只读辅助节点。
一些官方文档参考: