![]() |
1
15
从 MSDN :
简单地说,当您使用这个隔离级别,并且作为一个事务的一部分对活动表执行多个查询时,不能保证在事务的不同部分中返回给您的信息保持不变。您可以在一个事务中查询相同的数据两次,并获得不同的结果(这可能发生在不同的用户在您的事务中更新相同的数据的情况下)。这显然会对依赖数据完整性的应用程序部分产生严重影响。 |
![]() |
2
6
通常,当您需要对繁忙的表执行大量(或频繁)查询时,提交的读取可能会被未提交事务的锁阻止,但只有当您可以使用不准确的数据时。 例如,在我最近工作的一个游戏网站上,有一个关于最近游戏的一些统计数据的摘要显示,这些数据都是基于脏的读取,对我们来说,更重要的是包括然后排除尚未提交的事务数据(我们知道,如果有事务,很少会被取消),我们觉得平均来说,数据这样会更准确。 |
![]() |
3
0
如果你想马上返回数据,就使用它,如果它是正确的,就不那么重要了
还可以看一下SQL Server 2005中引入的快照隔离 |
![]() |
4
-1
问题是,当您想要在提交之前读取数据时,我们可以在set transaction isolation level read uncommitted的帮助下完成,数据可能会更改,也可能不会更改。 我们可以使用查询读取数据:
这仅适用于读取未提交的隔离级别。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 6 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 7 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 7 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 7 月前 |