在我的生产环境中,很少发生未处置的事务,这些事务会锁定一个表。我想在我的应用程序代码中修复它。
我可以临时获取 TransactionId 和 SessionId,但是 如何获取事务中执行的 SQL 命令,以便可以将其追溯到应用程序代码?
这是我获取长期未处置交易 ID 的方法:
SELECT trans.session_id AS [SESSION ID]
,login_name AS [Login NAME]
,trans.transaction_id AS [TRANSACTION ID]
,tas.name AS [TRANSACTION NAME]
,tas.transaction_begin_time AS [TRANSACTION BEGIN TIME]
FROM sys.dm_tran_active_transactions tas
JOIN sys.dm_tran_session_transactions trans ON (trans.transaction_id = tas.transaction_id)