With the Azure SQL Database, sometimes you want to view the current running transactions. Unfortunately there is no GUI as such like there is with normal SQL Server (right click, “Activity Monitor”), however it can be grabbed by executing sys.dm_exec_requests.
The following SQL is very useful as it shows details of all running transactions within the database, including highlighting if the transaction is blocked, or is causing blocking.
SELECT r.session_id ,CASE WHEN r.session_id IN ( SELECT DISTINCT (blocking_session_id) FROM sys.dm_exec_requests ) THEN 'Yes' ELSE '' END AS blocking ,r.blocking_session_id ,r.request_id ,r.start_time ,r.STATUS ,r.command ,r.database_id ,r.user_id ,r.wait_type ,r.wait_time ,r.last_wait_type ,r.wait_resource ,r.total_elapsed_time ,r.cpu_time ,CASE r.transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncommitted' WHEN 2 THEN 'ReadCommitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS transaction_isolation_level ,r.row_count ,r.percent_complete ,st.TEXT AS sql FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS st GROUP BY r.session_id ,r.blocking_session_id ,r.request_id ,r.start_time ,r.STATUS ,r.command ,r.database_id ,r.user_id ,r.wait_type ,r.wait_time ,r.last_wait_type ,r.wait_resource ,r.total_elapsed_time ,r.cpu_time ,r.transaction_isolation_level ,r.row_count ,r.percent_complete ,st.TEXT ORDER BY r.total_elapsed_time