【发布时间】:2015-12-23 22:02:42
【问题描述】:
我有一个大型旧数据库,其中 DTC 被禁用,我需要启用它以使用事务隔离级别“未提交读”,但我担心启用它的副作用。
这是特定查询所必需的,不会在其他任何地方使用。
有谁知道这是否会给我们现有的遗留系统带来任何问题?
详情:
我试图在我的 .NET 应用程序中使用TransactionScope,隔离级别为“未提交”,以便不锁定我的查询。此查询搜索被另一个应用程序的事务锁定在数据库中的寄存器。
也许有一种方法可以在不更改 DTC 配置的情况下使其正常工作。任何帮助将不胜感激!
【问题讨论】:
-
我不是 DTC 方面的专家,但我不认为直接通过单个连接直接读取未提交就需要 DTC,SQL Server 应该在没有 DTC 的情况下本机支持该事务级别。您在查询链接服务器吗?如果不是从同一个客户端打开多个连接,并且您只是在事务中直接查询一个数据库(而不是通过链接服务器),那么通常不需要 DTC。你遇到了什么错误?
-
嗨@AaronLS,当我启用READ UNCOMMITTED 事务级别时,我收到以下错误:分布式事务管理器(MSDTC)的网络访问已被禁用。请使用组件服务管理工具在 MSDTC 的安全配置中启用 DTC 以进行网络访问
-
我没有使用链接服务器,我正在从另一个应用程序打开一个新连接
-
您是否在应用程序中使用了 TransactionScope?您可以在没有它的情况下指定隔离级别,以避免 MSDTC 依赖。
标签: .net sql-server