【问题标题】:How to List Open Transactions如何列出未结交易
【发布时间】:2020-06-29 14:50:56
【问题描述】:

我正在尝试找到一种方法来列出 SQL Server 中所有打开的事务。

例如我执行以下语句:

这会打开两个已完成的事务,但现在此会话设置为“休眠”,并带有两个打开的事务。如何查看这些未结交易语句?

当我跑步时

select * from sys.dm_tran_session_transactions

我可以看到只有一行带有事务 ID 和打开的 tran 计数。 (会话 57 是我的未处理交易)

当我跑步时

select * from sys.dm_tran_database_transactions

我看到我的 transaction_id 的两行;一个在 user_db 中,一个在 tempdb 中(为什么我只看到两行?我在 user_db 中有两个打开的事务,所以我希望看到更多 db id 为 5 的行

当我跑步时

select * from sys.dm_tran_active_transactions 

没什么用,只有一行没有细节。

在睡眠会话中查看打开的事务语句的能力可能听起来微不足道,但我找不到任何方法来查看这些。

【问题讨论】:

    标签: sql tsql transactions dmv workload


    【解决方案1】:

    这是由预定义的 EE 会话完成的,带有特定的会话 ID 过滤器,由此我可以将收集的数据与 transactiond_id 的当前打开事务进行比较。在没有预定义日志记录的情况下检查交易文本看起来令人难以置信。

    【讨论】:

      猜你喜欢
      • 2019-07-04
      • 2018-10-12
      • 2018-05-10
      • 2011-02-27
      • 2011-03-12
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多