【问题标题】:Pros and cons of READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT 的优缺点
【发布时间】:2023-03-19 01:49:01
【问题描述】:

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

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

我们将不胜感激。

【问题讨论】:

    标签: sql-server-2008 c#-4.0 transactions


    【解决方案1】:

    RCSI 的好处:

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

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

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

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

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

    一些官方文档参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-01
      • 2013-04-07
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 2011-04-05
      相关资源
      最近更新 更多