簡體   English   中英

如何列出未結交易

[英]How to List Open Transactions

我正在嘗試找到一種方法來列出 SQL 服務器中的所有未結交易。

例如我執行以下語句:

在此處輸入圖像描述

這將打開兩個已完成的事務,但現在此 session 設置為“睡眠”並打開兩個事務。 我如何才能看到這些未結交易報表?

當我跑

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 

在此處輸入圖像描述

沒什么幫助,只有一排沒有細節。

查看睡眠會話中打開的事務語句的能力可能聽起來微不足道,但我找不到任何方法來查看這些。

它是由預定義的 EE session 和 session ID 的特定過濾器完成的,由此我可以通過 transactiond_id 將收集的數據與當前打開的事務進行比較。 在沒有預定義日志記錄的情況下檢查交易文本看起來令人難以置信。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM