SQL Server - Dirty Reads Pros & Cons为什么我应该或不应该使用脏读:
在SQL Server中吗? 来自MSDN:
简而言之,当您使用此隔离级别时,并且作为一个事务的一部分对活动表执行多个查询时,不能保证事务的不同部分中返回给您的信息将保持不变。您可以在一个事务中两次查询相同的数据并获得不同的结果(这种情况可能发生在另一个用户在事务中更新相同数据的情况下)。显然,这对于依赖数据完整性的应用程序部分可能会产生严重后果。 通常,当您需要对繁忙的表进行较大(或频繁)的查询时,未提交的事务可能会被锁阻止已提交的读取,但只有当您可以容纳不正确的数据时,才进行。 例如,在我最近工作的一个游戏网站上,摘要显示了一些有关最近游戏的统计信息,这些都是基于不正确的读取,对于我们而言,重要的是先包含然后排除交易数据,但仍保持承诺(无论如何,我们都知道很少会撤消交易),我们认为平均而言,数据将更准确。 如果您想立即恢复数据,请使用它,如果正确就不重要了 还请看一下SQL Server 2005中引入的快照隔离。 事情是当您想在提交之前读取数据时,我们可以借助设置事务隔离级别读取未提交的方式来进行操作,数据可能会更改,也可能不会更改。 我们可以通过查询来读取数据:
这仅适用于读取未提交的隔离级别。 |