@@ -85,7 +85,33 @@ SELECT @ProductVersionMajor = SUBSTRING(@ProductVersion, 1,CHARINDEX('.', @Produ
8585
8686IF @ProductVersionMajor > 9 and @ProductVersionMajor < 11
8787BEGIN
88- SET @StringToExecute = N' SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
88+ SET @StringToExecute = N'
89+ SET @StringToExecute = N' SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
90+
91+
92+ DECLARE @blocked TABLE
93+ (
94+ dbid SMALLINT NOT NULL ,
95+ last_batch DATETIME NOT NULL ,
96+ open_tran SMALLINT NOT NULL ,
97+ sql_handle BINARY (20 ) NOT NULL ,
98+ session_id SMALLINT NOT NULL ,
99+ blocking_session_id SMALLINT NOT NULL ,
100+ lastwaittype NCHAR (32 ) NOT NULL ,
101+ waittime BIGINT NOT NULL ,
102+ cpu INT NOT NULL ,
103+ physical_io BIGINT NOT NULL ,
104+ memusage INT NOT NULL
105+ );
106+
107+ INSERT @blocked ( dbid , last_batch, open_tran, sql_handle , session_id , blocking_session_id, lastwaittype, waittime, cpu, physical_io, memusage )
108+ SELECT
109+ sys1 .dbid , sys1 .last_batch , sys1 .open_tran , sys1 .sql_handle ,
110+ sys2 .spid AS session_id , sys2 .blocked AS blocking_session_id, sys2 .lastwaittype , sys2 .waittime , sys2 .cpu , sys2 .physical_io , sys2 .memusage
111+ FROM sys .sysprocesses AS sys1
112+ JOIN sys .sysprocesses AS sys2
113+ ON sys1 .spid = sys2 .blocked ;
114+
89115 SELECT GETDATE () AS run_date ,
90116 COALESCE (
91117 CONVERT (VARCHAR (20 ), (r .total_elapsed_time / 1000 ) / 86400 ) + ' ' :' ' + CONVERT (VARCHAR (20 ), DATEADD (s, (r .total_elapsed_time / 1000 ), 0 ), 114 ) ,
@@ -204,13 +230,11 @@ SET @StringToExecute = N'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
204230 AND qmg .pool_id = qrs .pool_id
205231 OUTER APPLY (
206232 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)
233+ b .dbid , b .last_batch , b .open_tran , b .sql_handle ,
234+ b .session_id , b .blocking_session_id , b .lastwaittype , b .waittime
235+ FROM @blocked b
236+ WHERE (s .session_id = b .session_id
237+ OR s .session_id = b .blocking_session_id )
214238 ) AS blocked
215239 OUTER APPLY sys .dm_exec_sql_text (COALESCE (r .sql_handle , blocked .sql_handle )) AS dest
216240 OUTER APPLY sys .dm_exec_query_plan (r .plan_handle ) AS derp
@@ -235,7 +259,32 @@ SELECT @EnhanceFlag =
235259 ELSE 0
236260 END
237261
238- SELECT @StringToExecute = N' SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
262+ SELECT @StringToExecute = N'
263+ SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
264+
265+ DECLARE @blocked TABLE
266+ (
267+ dbid SMALLINT NOT NULL ,
268+ last_batch DATETIME NOT NULL ,
269+ open_tran SMALLINT NOT NULL ,
270+ sql_handle BINARY (20 ) NOT NULL ,
271+ session_id SMALLINT NOT NULL ,
272+ blocking_session_id SMALLINT NOT NULL ,
273+ lastwaittype NCHAR (32 ) NOT NULL ,
274+ waittime BIGINT NOT NULL ,
275+ cpu INT NOT NULL ,
276+ physical_io BIGINT NOT NULL ,
277+ memusage INT NOT NULL
278+ );
279+
280+ INSERT @blocked ( dbid , last_batch, open_tran, sql_handle , session_id , blocking_session_id, lastwaittype, waittime, cpu, physical_io, memusage )
281+ SELECT
282+ sys1 .dbid , sys1 .last_batch , sys1 .open_tran , sys1 .sql_handle ,
283+ sys2 .spid AS session_id , sys2 .blocked AS blocking_session_id, sys2 .lastwaittype , sys2 .waittime , sys2 .cpu , sys2 .physical_io , sys2 .memusage
284+ FROM sys .sysprocesses AS sys1
285+ JOIN sys .sysprocesses AS sys2
286+ ON sys1 .spid = sys2 .blocked ;
287+
239288 SELECT GETDATE () AS run_date ,
240289 COALESCE (
241290 CONVERT (VARCHAR (20 ), (r .total_elapsed_time / 1000 ) / 86400 ) + ' ' :' ' + CONVERT (VARCHAR (20 ), DATEADD (s, (r .total_elapsed_time / 1000 ), 0 ), 114 ) ,
@@ -359,14 +408,12 @@ SELECT @StringToExecute = N'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
359408 AND qmg .pool_id = qrs .pool_id
360409 OUTER APPLY (
361410 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
411+ b .dbid , b .last_batch , b .open_tran , b .sql_handle ,
412+ b .session_id , b .blocking_session_id , b .lastwaittype , b .waittime
413+ FROM @blocked b
414+ WHERE (s .session_id = b .session_id
415+ OR s .session_id = b .blocking_session_id )
416+ ) AS blocked
370417 OUTER APPLY sys .dm_exec_sql_text (COALESCE (r .sql_handle , blocked .sql_handle )) AS dest
371418 OUTER APPLY sys .dm_exec_query_plan (r .plan_handle ) AS derp
372419 WHERE s .session_id <> @@SPID
0 commit comments