【发布时间】:2012-01-02 08:08:21
【问题描述】:
借助 SQL Server 的事务隔离级别,您可以避免某些不必要的并发问题,例如脏读等。
我现在感兴趣的是丢失的更新 - 事实上,两个交易可以在没有人注意到的情况下覆盖彼此的更新。我看到并听到关于我必须选择至少哪个隔离级别来避免这种情况的相互矛盾的陈述。
Kalen Delaney 在她的“SQL Server Internals”一书中说(第 10 章 - 事务和并发 - 第 592 页):
在未提交的读取隔离中,前面描述的所有行为,除了丢失更新,都是可能的。
另一方面,给我们上课的独立 SQL Server 培训师告诉我们,我们至少需要“可重复读取”以避免丢失更新。
那么谁是对的?为什么??
【问题讨论】:
标签: sql-server isolation-level transaction-isolation