@@ -86,7 +86,32 @@ SELECT @ProductVersionMajor = SUBSTRING(@ProductVersion, 1,CHARINDEX('.', @Produ
8686IF @ProductVersionMajor > 9 and @ProductVersionMajor < 11
8787BEGIN
8888SET @StringToExecute = N'
89- SELECT GETDATE() AS run_date ,
89+
90+ DECLARE @blocked TABLE
91+ (
92+ dbid SMALLINT NOT NULL,
93+ last_batch DATETIME NOT NULL,
94+ open_tran SMALLINT NOT NULL,
95+ sql_handle BINARY(20) NOT NULL,
96+ session_id SMALLINT NOT NULL,
97+ blocking_session_id SMALLINT NOT NULL,
98+ lastwaittype NCHAR(32) NOT NULL,
99+ waittime BIGINT NOT NULL,
100+ cpu INT NOT NULL,
101+ physical_io BIGINT NOT NULL,
102+ memusage INT NOT NULL
103+ );
104+
105+ INSERT @blocked ( dbid, last_batch, open_tran, sql_handle, session_id, blocking_session_id, lastwaittype, waittime, cpu, physical_io, memusage )
106+ SELECT
107+ sys1.dbid, sys1.last_batch, sys1.open_tran, sys1.sql_handle,
108+ sys2.spid AS session_id, sys2.blocked AS blocking_session_id, sys2.lastwaittype, sys2.waittime, sys2.cpu, sys2.physical_io, sys2.memusage
109+ FROM sys.sysprocesses AS sys1
110+ JOIN sys.sysprocesses AS sys2
111+ ON sys1.spid = sys2.blocked
112+
113+
114+ SELECT GETDATE() AS run_date ,
90115 COALESCE(
91116 CONVERT(VARCHAR(20), (r.total_elapsed_time / 1000) / 86400) + '' :'' + CONVERT(VARCHAR(20), DATEADD(s, (r.total_elapsed_time / 1000), 0), 114) ,
92117 CONVERT(VARCHAR(20), DATEDIFF(MILLISECOND, s.last_request_start_time, GETDATE()) / 1000 / 86400) + '' :''
@@ -204,13 +229,11 @@ SET @StringToExecute = N'
204229 AND qmg.pool_id = qrs.pool_id
205230 OUTER APPLY (
206231 SELECT TOP 1
207- sys1.dbid, sys1.last_batch, sys1.open_tran, sys1.sql_handle,
208- sys2.spid AS session_id, sys2.blocked AS blocking_session_id, sys2.lastwaittype, sys2.waittime
209- FROM sys.sysprocesses AS sys1
210- JOIN sys.sysprocesses AS sys2
211- ON sys1.spid = sys2.blocked
212- WHERE (s.session_id = sys2.spid
213- OR s.session_id = sys2.blocked)
232+ b.dbid, b.last_batch, b.open_tran, b.sql_handle,
233+ b.session_id, b.blocking_session_id, b.lastwaittype, b.waittime
234+ FROM @blocked b
235+ WHERE (s.session_id = b.session_id
236+ OR s.session_id = b.blocking_session_id)
214237 ) AS blocked
215238 OUTER APPLY sys.dm_exec_sql_text(COALESCE(r.sql_handle, blocked.sql_handle)) AS dest
216239 OUTER APPLY sys.dm_exec_query_plan(r.plan_handle) AS derp
@@ -236,6 +259,30 @@ SELECT @EnhanceFlag =
236259 END
237260
238261SELECT @StringToExecute = N'
262+
263+ DECLARE @blocked TABLE
264+ (
265+ dbid SMALLINT NOT NULL,
266+ last_batch DATETIME NOT NULL,
267+ open_tran SMALLINT NOT NULL,
268+ sql_handle BINARY(20) NOT NULL,
269+ session_id SMALLINT NOT NULL,
270+ blocking_session_id SMALLINT NOT NULL,
271+ lastwaittype NCHAR(32) NOT NULL,
272+ waittime BIGINT NOT NULL,
273+ cpu INT NOT NULL,
274+ physical_io BIGINT NOT NULL,
275+ memusage INT NOT NULL
276+ );
277+
278+ INSERT @blocked ( dbid, last_batch, open_tran, sql_handle, session_id, blocking_session_id, lastwaittype, waittime, cpu, physical_io, memusage )
279+ SELECT
280+ sys1.dbid, sys1.last_batch, sys1.open_tran, sys1.sql_handle,
281+ sys2.spid AS session_id, sys2.blocked AS blocking_session_id, sys2.lastwaittype, sys2.waittime, sys2.cpu, sys2.physical_io, sys2.memusage
282+ FROM sys.sysprocesses AS sys1
283+ JOIN sys.sysprocesses AS sys2
284+ ON sys1.spid = sys2.blocked
285+
239286 SELECT GETDATE() AS run_date ,
240287 COALESCE(
241288 CONVERT(VARCHAR(20), (r.total_elapsed_time / 1000) / 86400) + '' :'' + CONVERT(VARCHAR(20), DATEADD(s, (r.total_elapsed_time / 1000), 0), 114) ,
@@ -359,14 +406,12 @@ SELECT @StringToExecute = N'
359406 AND qmg.pool_id = qrs.pool_id
360407 OUTER APPLY (
361408 SELECT TOP 1
362- sys1.dbid, sys1.last_batch, sys1.open_tran, sys1.sql_handle,
363- sys2.spid AS session_id, sys2.blocked AS blocking_session_id, sys2.lastwaittype, sys2.waittime, sys2.cpu, sys2.physical_io, sys2.memusage
364- FROM sys.sysprocesses AS sys1
365- JOIN sys.sysprocesses AS sys2
366- ON sys1.spid = sys2.blocked
367- WHERE (s.session_id = sys2.spid
368- OR s.session_id = sys2.blocked)
369- ) AS blocked
409+ b.dbid, b.last_batch, b.open_tran, b.sql_handle,
410+ b.session_id, b.blocking_session_id, b.lastwaittype, b.waittime
411+ FROM @blocked b
412+ WHERE (s.session_id = b.session_id
413+ OR s.session_id = b.blocking_session_id)
414+ ) AS blocked
370415 OUTER APPLY sys.dm_exec_sql_text(COALESCE(r.sql_handle, blocked.sql_handle)) AS dest
371416 OUTER APPLY sys.dm_exec_query_plan(r.plan_handle) AS derp
372417 WHERE s.session_id <> @@SPID
0 commit comments