監控資料庫事物運行情況,監控資料庫事物
SELECT DBT.DATABASE_ID, DB_NAME(DBT.DATABASE_ID) '資料庫名', DBT.TRANSACTION_ID, AT.NAME, AT.TRANSACTION_BEGIN_TIME, CASE AT.TRANSACTION_TYPE WHEN 1 THEN '讀/寫事務' WHEN 2 THEN '唯讀事務' WHEN 3 THEN '系統事務' WHEN 4 THEN '分散式交易' END 'TRANSACTION類型', CASE AT.TRANSACTION_STATE WHEN 0 THEN '事務尚未完全初始化' WHEN 1 THEN '事務已初始化但尚未啟動' WHEN 2 THEN '事務處於活動狀態' WHEN 3 THEN '事務已結束。該狀態用於唯讀事務' WHEN 4 THEN '已對分散式交易啟動提交進程' WHEN 5 THEN '事務處於準備就緒狀態且等待解析' WHEN 6 THEN '事務已提交' WHEN 7 THEN '事務正在被復原' WHEN 8 THEN '事務已復原' END 'TRANSACTION狀態', ST.SESSION_ID, TT.TEXT AS '最近執行的語句', ES.PROGRAM_NAME FROM SYS.DM_TRAN_DATABASE_TRANSACTIONS DBTLEFT JOIN SYS.DM_TRAN_ACTIVE_TRANSACTIONS AT ON DBT.TRANSACTION_ID = AT.TRANSACTION_IDLEFT JOIN SYS.DM_TRAN_SESSION_TRANSACTIONS ST ON AT.TRANSACTION_ID = ST.TRANSACTION_IDLEFT JOIN SYS.DM_EXEC_SESSIONS ES ON ST.SESSION_ID = ES.SESSION_IDLEFT JOIN SYS.DM_EXEC_CONNECTIONS EC ON ES.SESSION_ID = EC.SESSION_IDOUTER APPLY SYS.DM_EXEC_SQL_TEXT(EC.MOST_RECENT_SQL_HANDLE) TTWHERE ST.SESSION_ID >= 50 AND DATABASE_ID <> 32767