@@ -150,8 +150,12 @@ BEGIN
150150 WHEN
151151 (
152152 SELECT
153- SERVERPROPERTY(' EDITION' )
154- ) = ' SQL Azure'
153+ CONVERT
154+ (
155+ integer ,
156+ SERVERPROPERTY(' EngineEdition' )
157+ )
158+ ) = 5
155159 THEN 1
156160 ELSE 0
157161 END,
@@ -379,7 +383,7 @@ BEGIN
379383 /*Add wait_resource column*/
380384 ALTER TABLE ' +
381385 @ObjectFullName +
382- N' ADD client_option_1 nvarchar(8000 ) NULL;' ;
386+ N' ADD client_option_1 varchar(500 ) NULL;' ;
383387
384388 IF @Debug = 1 BEGIN PRINT @StringToExecute; END;
385389 EXEC sys .sp_executesql
@@ -395,7 +399,7 @@ BEGIN
395399 /*Add wait_resource column*/
396400 ALTER TABLE ' +
397401 @ObjectFullName +
398- N' ADD client_option_2 nvarchar(8000 ) NULL;' ;
402+ N' ADD client_option_2 varchar(500 ) NULL;' ;
399403
400404 IF @Debug = 1 BEGIN PRINT @StringToExecute; END;
401405 EXEC sys .sp_executesql
@@ -458,8 +462,8 @@ BEGIN
458462 waiter_mode nvarchar(256),
459463 lock_mode nvarchar(256),
460464 transaction_count bigint,
461- client_option_1 varchar(2000 ),
462- client_option_2 varchar(2000 ),
465+ client_option_1 varchar(500 ),
466+ client_option_2 varchar(500 ),
463467 login_name nvarchar(256),
464468 host_name nvarchar(256),
465469 client_app nvarchar(1024),
@@ -845,7 +849,12 @@ BEGIN
845849 LEFT JOIN # t AS t
846850 ON 1 = 1
847851 CROSS APPLY x .x .nodes(' /RingBufferTarget/event' ) AS e(x)
848- WHERE e .x .exist(' @name[ .= "xml_deadlock_report"]' ) = 1
852+ WHERE
853+ (
854+ e .x .exist(' @name[ .= "xml_deadlock_report"]' ) = 1
855+ OR e .x .exist(' @name[ .= "database_xml_deadlock_report"]' ) = 1
856+ OR e .x .exist(' @name[ .= "xml_deadlock_report_filtered"]' ) = 1
857+ )
849858 AND e .x .exist(' @timestamp[. >= sql:variable("@StartDate")]' ) = 1
850859 AND e .x .exist(' @timestamp[. < sql:variable("@EndDate")]' ) = 1
851860 OPTION(RECOMPILE);
@@ -864,7 +873,9 @@ BEGIN
864873 SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
865874 RAISERROR(' Inserting to #deadlock_data for event file data' , 0 , 1 ) WITH NOWAIT;
866875
867- INSERT
876+ IF @Debug = 1 BEGIN SET STATISTICS XML ON ; END;
877+
878+ INSERT
868879 # deadlock_data WITH(TABLOCKX)
869880 (
870881 deadlock_xml
@@ -876,12 +887,19 @@ BEGIN
876887 LEFT JOIN # t AS t
877888 ON 1 = 1
878889 CROSS APPLY x .x .nodes(' /event' ) AS e(x)
879- WHERE e .x .exist(' /event/@name[ .= "xml_deadlock_report"]' ) = 1
880- AND e .x .exist(' /event/@timestamp[. >= sql:variable("@StartDate")]' ) = 1
881- AND e .x .exist(' /event/@timestamp[. < sql:variable("@EndDate")]' ) = 1
890+ WHERE
891+ (
892+ e .x .exist(' @name[ .= "xml_deadlock_report"]' ) = 1
893+ OR e .x .exist(' @name[ .= "database_xml_deadlock_report"]' ) = 1
894+ OR e .x .exist(' @name[ .= "xml_deadlock_report_filtered"]' ) = 1
895+ )
896+ AND e .x .exist(' @timestamp[. >= sql:variable("@StartDate")]' ) = 1
897+ AND e .x .exist(' @timestamp[. < sql:variable("@EndDate")]' ) = 1
882898 OPTION(RECOMPILE);
883899
884- SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
900+ IF @Debug = 1 BEGIN SET STATISTICS XML OFF; END;
901+
902+ SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
885903 RAISERROR(' Finished at %s' , 0 , 1 , @d) WITH NOWAIT;
886904 END;
887905
@@ -908,7 +926,7 @@ BEGIN
908926 FROM sys .fn_xe_file_target_read_file (N' system_health*.xel' , NULL , NULL , NULL ) AS fx
909927 LEFT JOIN # t AS t
910928 ON 1 = 1
911- WHERE fx .object_name = N' xml_deadlock_report'
929+ WHERE fx .object_name = N' xml_deadlock_report'
912930 ) AS xml
913931 CROSS APPLY xml .deadlock_xml .nodes(' /event' ) AS e(x)
914932 WHERE 1 = 1
@@ -1006,7 +1024,7 @@ BEGIN
10061024 CASE WHEN q .clientoption1 & 8192 = 8192 THEN ' , NUMERIC_ROUNDABORT' ELSE ' ' END +
10071025 CASE WHEN q .clientoption1 & 16384 = 16384 THEN ' , XACT_ABORT' ELSE ' ' END,
10081026 3 ,
1009- 8000
1027+ 500
10101028 ),
10111029 client_option_2 =
10121030 SUBSTRING
@@ -1028,7 +1046,7 @@ BEGIN
10281046 CASE WHEN q .clientoption2 & 1073741824 = 1073741824 THEN ' , AUTO UPDATE STATISTICS' ELSE ' ' END +
10291047 CASE WHEN q .clientoption2 & 1469283328 = 1469283328 THEN ' , ALL SETTABLE OPTIONS' ELSE ' ' END,
10301048 3 ,
1031- 8000
1049+ 500
10321050 ),
10331051 q .process_xml
10341052 INTO # deadlock_process
@@ -1795,6 +1813,16 @@ BEGIN
17951813 N' S' ,
17961814 N' IS'
17971815 )
1816+ OR dow .owner_mode IN
1817+ (
1818+ N' S' ,
1819+ N' IS'
1820+ )
1821+ OR dow .waiter_mode IN
1822+ (
1823+ N' S' ,
1824+ N' IS'
1825+ )
17981826 AND (dow .database_id = @DatabaseId OR @DatabaseName IS NULL )
17991827 AND (dow .event_date >= @StartDate OR @StartDate IS NULL )
18001828 AND (dow .event_date < @EndDate OR @EndDate IS NULL )
@@ -2532,7 +2560,7 @@ BEGIN
25322560 ),
25332561 14
25342562 )
2535- END
2563+ END
25362564 FROM # deadlock_owner_waiter AS dow
25372565 JOIN # deadlock_process AS dp
25382566 ON (dp .id = dow .owner_id
@@ -3520,38 +3548,40 @@ BEGIN
35203548 DROP SYNONYM DeadlockFindings; /* done with inserting.*/
35213549 END;
35223550 ELSE /* Output to database is not set output to client app*/
3523- SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
3524- RAISERROR(' Results to client %s' , 0 , 1 , @d) WITH NOWAIT;
3525-
3526- IF @Debug = 1 BEGIN SET STATISTICS XML ON ; END;
3527-
3528- EXEC sys .sp_executesql
3529- @deadlock_result;
3530-
3531- IF @Debug = 1
3532- BEGIN
3533- SET STATISTICS XML OFF;
3534- PRINT @deadlock_result;
3535- END;
3536-
3537- RAISERROR(' Finished at %s' , 0 , 1 , @d) WITH NOWAIT;
3538-
3539- SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
3540- RAISERROR(' Returning findings %s' , 0 , 1 , @d) WITH NOWAIT;
3541-
3542- SELECT
3543- df .check_id ,
3544- df .database_name ,
3545- df .object_name ,
3546- df .finding_group ,
3547- df .finding
3548- FROM # deadlock_findings AS df
3549- ORDER BY df .check_id
3550- OPTION(RECOMPILE);
3551-
3552- SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
3553- RAISERROR(' Finished at %s' , 0 , 1 , @d) WITH NOWAIT;
3554- END; /* done with output to client app.*/
3551+ BEGIN
3552+ SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
3553+ RAISERROR(' Results to client %s' , 0 , 1 , @d) WITH NOWAIT;
3554+
3555+ IF @Debug = 1 BEGIN SET STATISTICS XML ON ; END;
3556+
3557+ EXEC sys .sp_executesql
3558+ @deadlock_result;
3559+
3560+ IF @Debug = 1
3561+ BEGIN
3562+ SET STATISTICS XML OFF;
3563+ PRINT @deadlock_result;
3564+ END;
3565+
3566+ RAISERROR(' Finished at %s' , 0 , 1 , @d) WITH NOWAIT;
3567+
3568+ SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
3569+ RAISERROR(' Returning findings %s' , 0 , 1 , @d) WITH NOWAIT;
3570+
3571+ SELECT
3572+ df .check_id ,
3573+ df .database_name ,
3574+ df .object_name ,
3575+ df .finding_group ,
3576+ df .finding
3577+ FROM # deadlock_findings AS df
3578+ ORDER BY df .check_id
3579+ OPTION(RECOMPILE);
3580+
3581+ SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
3582+ RAISERROR(' Finished at %s' , 0 , 1 , @d) WITH NOWAIT;
3583+ END; /* done with output to client app.*/
3584+ END;
35553585
35563586 IF @Debug = 1
35573587 BEGIN
0 commit comments