@@ -85,7 +85,33 @@ SELECT @ProductVersionMajor = SUBSTRING(@ProductVersion, 1,CHARINDEX('.', @Produ
85
85
86
86
IF @ProductVersionMajor > 9 and @ProductVersionMajor < 11
87
87
BEGIN
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
+
89
115
SELECT GETDATE () AS run_date ,
90
116
COALESCE (
91
117
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;
204
230
AND qmg .pool_id = qrs .pool_id
205
231
OUTER APPLY (
206
232
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 )
214
238
) AS blocked
215
239
OUTER APPLY sys .dm_exec_sql_text (COALESCE (r .sql_handle , blocked .sql_handle )) AS dest
216
240
OUTER APPLY sys .dm_exec_query_plan (r .plan_handle ) AS derp
@@ -235,7 +259,32 @@ SELECT @EnhanceFlag =
235
259
ELSE 0
236
260
END
237
261
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
+
239
288
SELECT GETDATE () AS run_date ,
240
289
COALESCE (
241
290
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;
359
408
AND qmg .pool_id = qrs .pool_id
360
409
OUTER APPLY (
361
410
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
370
417
OUTER APPLY sys .dm_exec_sql_text (COALESCE (r .sql_handle , blocked .sql_handle )) AS dest
371
418
OUTER APPLY sys .dm_exec_query_plan (r .plan_handle ) AS derp
372
419
WHERE s .session_id <> @@SPID
0 commit comments