5

我知道 SQL Server 中的默认 TRANSACTION ISOLATION LEVEL 是“已提交读”。如果我想将其更改为“READ UNCOMMITTED”,我该如何进行此配置更改?

注意:我不能使用 SET TRANSACTION ISOLATION LEVEL,它只适用于当前会话。我无法在查询中添加 NOLOCK,因为涉及到数千个查询。

谢谢


感谢您的回答。我们可以阅读脏行。在我们的案例中,更新也不是问题。但是,我真的很想改变这个隔离级别的默认配置。请帮助。

我不能“设置事务隔离级别未提交”。我必须做出全局性的改变。


我们已经仔细审查了这两个快照隔离级别。它们不能用于我们的情况。

4

2 回答 2

3

我真的认为您不应该将其设置在全球范围内。你应该非常小心地设置它,因为你最终会遇到很多不同的问题:

  • 丢失更新
  • 不可重复读取
  • 脏读
  • 幻读

无法在数据库或服务器级别设置它 - 它只能在连接级别设置。

您可以在数据库级别做的最好的事情是设置ALLOW_SNAPSHOT_ISOLATIONorREAD_COMMITTED_SNAPSHOT属性。在这里阅读更多:

http://msdn.microsoft.com/en-us/library/tcbchxcb%28VS.80%29.aspx

于 2009-11-03T23:01:24.780 回答
0

怎么样

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

它仅适用于当前交易。

于 2009-11-03T22:56:07.073 回答