【问题标题】:How may I change the default TRANSACTION ISOLATION LEVEL in SQL Server 2005?如何更改 SQL Server 2005 中的默认事务隔离级别?
【发布时间】:2010-12-12 20:14:00
【问题描述】:

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

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

谢谢


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

我无法“将事务隔离级别设置为未提交”。我必须进行全局更改。


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

【问题讨论】:

  • 我很好奇您遇到的具体问题是未提交读取是您唯一的解决方案吗?我假设存在某种锁争用,但有很多方法可以解决此类问题。
  • 我遇到这个是想知道这是否可能,因为我想知道是否有人对我们这样做。有人知道吗?

标签: sql-server isolation-level


【解决方案1】:

我真的认为您不应该将其设置为全局级别。您应该非常小心地设置它,因为您最终可能会遇到很多不同的问题:

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

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

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

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

【讨论】:

    【解决方案2】:

    What about:

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    

    它只适用于当前交易。

    【讨论】:

    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多