How to check how many open transaction is running.

select 
    [s_tst].[session_id],
[s_es].[login_name] as [Login Name],
DB_NAME (s_tdt.database_id) as [Database],
[s_tdt].[database_transaction_begin_time] as [Begin time],
[s_tdt].[database_transaction_log_bytes_used] as [Log Bytes],
[s_tdt].[database_transaction_log_bytes_reserved] as [Log rsvd],
[s_est].text as [Last T- SQL Text],
[s_eqp].[query_plan] as [Last Plan]
From 
sys.dm_tran_database_transactions [s_tdt]
Join
sys.dm_tran_session_transactions [s_tst]
On
[s_tst].[transaction_id]=[s_tdt].[transaction_id]
join
sys.[dm_exec_sessions] [s_es]
On
[s_es].[session_id]= [s_tst].[session_id]
join
sys.dm_exec_connections [s_ec]
On 
[s_ec].[session_id]=[s_tst].[session_id]
Left outer join
sys.dm_exec_requests [s_er]
On 
[s_er].[session_id] = [s_tst].[session_id]
cross apply
sys.dm_exec_sql_text ([s_ec].[most_recent_sql_handle]) as [s_est]
Outer apply
sys.dm_exec_query_plan ([s_er].[plan_handle]) as [s_eqp]
Order by
[Begin Time] Asc

No comments:

Post a Comment