如何列出未结交易
How to List Open Transactions
我正在尝试找到一种方法来列出 SQL 服务器中所有未完成的交易。
例如我执行以下语句:
这将打开两个已完成的事务,但现在此会话被设置为“休眠”,同时有两个打开的事务。如何查看这些未结交易报表?
当我运行
select * from sys.dm_tran_session_transactions
我可以看到只有一行包含交易 ID 和打开的交易计数。 (会话 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
没有任何帮助,只有一行没有详细信息。
在休眠会话中查看打开的交易报表的能力听起来微不足道,但我找不到任何方法来查看这些。
这是通过预定义的 EE 会话完成的,具有特定的会话 ID 过滤器,由此我可以通过 transactiond_id 将收集的数据与当前打开的事务进行比较。在没有预定义日志记录的情况下检查交易文本,这看起来令人难以置信。
我正在尝试找到一种方法来列出 SQL 服务器中所有未完成的交易。
例如我执行以下语句:
这将打开两个已完成的事务,但现在此会话被设置为“休眠”,同时有两个打开的事务。如何查看这些未结交易报表?
当我运行
select * from sys.dm_tran_session_transactions
我可以看到只有一行包含交易 ID 和打开的交易计数。 (会话 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
没有任何帮助,只有一行没有详细信息。
在休眠会话中查看打开的交易报表的能力听起来微不足道,但我找不到任何方法来查看这些。
这是通过预定义的 EE 会话完成的,具有特定的会话 ID 过滤器,由此我可以通过 transactiond_id 将收集的数据与当前打开的事务进行比较。在没有预定义日志记录的情况下检查交易文本,这看起来令人难以置信。