【发布时间】:2009-07-27 13:30:18
【问题描述】:
我在我的 asp.net 应用程序中使用已提交的读取事务。
我怀疑当我到达 SQL Server 时,读取已提交并没有被使用。
有没有办法通过 SQL 跟踪来确定事务的隔离级别是什么。我只能看到BEGIN TRANSACTION
【问题讨论】:
标签: asp.net sql-server ado.net
我在我的 asp.net 应用程序中使用已提交的读取事务。
我怀疑当我到达 SQL Server 时,读取已提交并没有被使用。
有没有办法通过 SQL 跟踪来确定事务的隔离级别是什么。我只能看到BEGIN TRANSACTION
【问题讨论】:
标签: asp.net sql-server ado.net
您可以通过 Profiler 检查的一件事是登录时设置的隔离级别。跟踪“审核登录”事件并包含 TextData 列;这将显示一堆 o' 东西,其中包括隔离级别。
我对此有点漫不经心,因为我不知道它为什么会显示它的作用——要么这是默认的 SQL 行为,要么完全取决于建立连接的任何东西。这不会显示它是如何变化的,尽管通常的语句跟踪会 - 尽管为此筛选数千个事件可能会很痛苦。
【讨论】:
我不确定通过探查器是否可行。 但是,您可以尝试以下方法...
【讨论】:
如果您正在查看代码的特定部分并且可以稍微使用它,您可以通过在相关事务期间抛出 DBCC USEROPTIONS 来进行测试 - 这将返回当前的隔离级别值。如果您有一部分代码散布着 SET TRANSACTION ISOLATION LEVEL 命令,这将很有帮助 - 随意使用 DBCC USEROPTIONS 以查看您的隔离级别是如何在事务之间设置的。
【讨论】: