3

在 SQL Server 中,默认隔离级别是READ_COMMITTED,但在 SQL Azure 中,默认级别是READ_COMMITTED_SNAPSHOT.

假设我将 SQL Azure 服务器中的默认级别更改为READ_COMMITTED_SNAPSHOT(使用SET TRANSACTION ISOLATION LEVEL),使其行为类似于 SQL Server。

我应该期待什么负面后果?

4

1 回答 1

3

您的应用程序逻辑可能会中断。真的,这很大程度上取决于你在做什么。总的来说,一些提示:

  • 与 RCSI 相比,True SNAPSHOT 的“惊喜”要少得多。由于“快照”行版本在真正的 SNAPSHOT 中明确定义为事务开始的那一刻,因此它不会遭受在同一事务中看到不同行版本的 RCSI 问题(这会导致非常微妙且难以理解的问题)
  • 您将获得更新冲突而不是死锁,但完全是“而不是”。存在一些差异,应用程序可能不会期望新的错误代码 3960。

我建议阅读在 SQL Server 中实现快照或读取提交的快照隔离:指南

于 2013-01-10T12:56:14.300 回答