Skip to content

Commit 4688c1f

Browse files
authored
Added new TSQL Query 📦
1 parent 90a9130 commit 4688c1f

1 file changed

Lines changed: 66 additions & 0 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
-- Set the transaction isolation level to READ UNCOMMITTED
2+
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
3+
4+
-- Common Table Expression to calculate the maximum execution count for each plan handle
5+
WITH ExecutionCounts AS (
6+
SELECT plan_handle, MAX(usecounts) AS execution_count
7+
FROM sys.dm_exec_cached_plans
8+
GROUP BY plan_handle
9+
)
10+
11+
-- Retrieve session and performance details
12+
SELECT
13+
er.session_id AS SPID, -- Session ID
14+
CASE WHEN EXISTS (
15+
SELECT 1
16+
FROM master.dbo.sysprocesses sp
17+
WHERE sp.blocked = er.session_id
18+
) THEN -1 ELSE er.blocking_session_id END AS BlkBy, -- Blocking Session ID (if exists), otherwise Blocking Session ID
19+
er.total_elapsed_time AS ElapsedMS, -- Total elapsed time
20+
er.cpu_time AS CPU, -- CPU time
21+
er.logical_reads + er.reads AS IOReads, -- I/O reads
22+
er.writes AS IOWrites, -- I/O writes
23+
ec.execution_count AS Executions, -- Execution count
24+
er.command AS CommandType, -- Command type
25+
er.last_wait_type AS LastWaitType, -- Last wait type
26+
OBJECT_SCHEMA_NAME(qt.objectid, dbid) + '.' + OBJECT_NAME(qt.objectid, qt.dbid) AS ObjectName, -- Object name
27+
er.wait_resource AS waitresource, -- Wait resource
28+
SUBSTRING(qt.text, (er.statement_start_offset + 2) / 2,
29+
(CASE WHEN er.statement_end_offset = -1
30+
THEN LEN(CONVERT(nvarchar(MAX), qt.text)) * 2
31+
ELSE (er.statement_end_offset - er.statement_start_offset + 2) / 2
32+
END)) AS SQLStatement, -- SQL statement
33+
ses.STATUS AS [STATUS], -- Session status
34+
ses.login_name AS [Login], -- Login name
35+
ses.host_name AS Host, -- Host name
36+
DB_Name(er.database_id) AS DBName, -- Database name
37+
er.start_time AS StartTime, -- Start time
38+
con.net_transport AS Protocol, -- Network protocol
39+
CASE ses.transaction_isolation_level
40+
WHEN 0 THEN 'Unspecified'
41+
WHEN 1 THEN 'Read Uncommitted'
42+
WHEN 2 THEN 'Read Committed'
43+
WHEN 3 THEN 'Repeatable'
44+
WHEN 4 THEN 'Serializable'
45+
WHEN 5 THEN 'Snapshot'
46+
END AS transaction_isolation, -- Transaction isolation level
47+
con.num_writes AS ConnectionWrites, -- Connection writes
48+
con.num_reads AS ConnectionReads, -- Connection reads
49+
con.client_net_address AS ClientAddress, -- Client address
50+
con.auth_scheme AS Authentication, -- Authentication scheme
51+
GETDATE() AS DatetimeSnapshot -- Current datetime
52+
FROM sys.dm_exec_requests er
53+
LEFT JOIN sys.dm_exec_sessions ses ON ses.session_id = er.session_id
54+
LEFT JOIN sys.dm_exec_connections con ON con.session_id = ses.session_id
55+
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
56+
OUTER APPLY (
57+
SELECT MAX(execution_count) AS execution_count
58+
FROM ExecutionCounts
59+
WHERE plan_handle = er.plan_handle
60+
) ec
61+
WHERE er.session_id <> @@SPID -- Exclude the current session
62+
AND ses.status = 'running' -- Show only running status
63+
ORDER BY
64+
er.blocking_session_id DESC, -- Sort by blocking session ID (descending)
65+
IOReads DESC, -- Sort by I/O reads (descending)
66+
er.session_id; -- Sort by session ID

0 commit comments

Comments
 (0)