[英]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.