@@ -354,12 +354,25 @@ SET @VersionDate = '20171201';
354354
355355 /* Add some nonsense*/
356356 ALTER TABLE #deadlock_process
357- ADD owner_objects NVARCHAR (4000 ),
358- waiter_objects NVARCHAR (4000 ),
359- waiter_mode NVARCHAR (256 ),
357+ ADD waiter_mode NVARCHAR (256 ),
360358 owner_mode NVARCHAR (256 ),
361359 is_victim AS CONVERT (BIT , CASE WHEN id = victim_id THEN 1 ELSE 0 END );
362360
361+ /* Update some nonsense*/
362+ UPDATE dp
363+ SET dp .owner_mode = dow .owner_mode
364+ FROM #deadlock_process AS dp
365+ JOIN #deadlock_owner_waiter AS dow
366+ ON dp .id = dow .owner_id
367+ WHERE dp .is_victim = 0
368+ 369+ UPDATE dp
370+ SET dp .waiter_mode = dow .waiter_mode
371+ FROM #deadlock_process AS dp
372+ JOIN #deadlock_owner_waiter AS dow
373+ ON dp .victim_id = dow .waiter_id
374+ WHERE dp .is_victim = 1
375+ 363376
364377 /* Begin checks based on parsed values*/
365378
@@ -436,11 +449,11 @@ SET @VersionDate = '20171201';
436449 ' This database has had ' +
437450 CONVERT (NVARCHAR (20 ), COUNT_BIG (DISTINCT dp .id )) +
438451 ' instances of deadlocks involving the login ' +
439- dp .login_name +
452+ ISNULL ( dp .login_name , ' UNKNOWN' ) +
440453 ' from the application ' +
441- dp .client_app +
454+ ISNULL ( dp .client_app , ' UNKNOWN' ) +
442455 ' on host ' +
443- dp .host_name
456+ ISNULL ( dp .host_name , ' UNKNOWN' )
444457 AS finding,
445458 NULL AS query_text
446459 FROM #deadlock_process AS dp
@@ -561,9 +574,10 @@ SET @VersionDate = '20171201';
561574 ' This object has had '
562575 + CONVERT (VARCHAR (10 ), cs .wait_days )
563576 + ' :' + CONVERT (VARCHAR (20 ), cs .wait_time_hms , 108 )
564- + ' [d/h/m/s] of deadlock wait time.' ,
577+ + ' [d/h/m/s] of deadlock wait time.'AS finding ,
565578 NULL AS query_text
566579 FROM chopsuey AS cs
580+ WHERE cs .object_name IS NOT NULL
567581 OPTION ( RECOMPILE );
568582
569583 /* Check 10 gets total deadlock wait time per database*/
@@ -627,13 +641,19 @@ SET @VersionDate = '20171201';
627641 dp .login_name ,
628642 dp .isolation_level ,
629643 dp .process_xml .value (' (//process/inputbuf/text())[1]' , ' NVARCHAR(MAX)' ) AS inputbuf,
630- ROW_NUMBER () OVER ( PARTITION BY dp .event_date , dp .id ORDER BY dp .event_date ) AS dn
644+ ROW_NUMBER () OVER ( PARTITION BY dp .event_date , dp .id ORDER BY dp .event_date ) AS dn,
645+ dp .is_victim ,
646+ ISNULL (dp .owner_mode , ' N/A' ) AS owner_mode,
647+ ISNULL (dp .waiter_mode , ' N/A' ) AS waiter_mode
631648 FROM #deadlock_process AS dp )
632649 SELECT d .event_date ,
633650 DB_NAME (d .database_id ) AS database_name ,
634651 CONVERT (XML , N ' <inputbuf>' + d .inputbuf + N ' </inputbuf>' ) AS query,
635652 d .object_names ,
636653 d .isolation_level ,
654+ d .is_victim ,
655+ d .owner_mode ,
656+ d .waiter_mode ,
637657 d .transaction_count ,
638658 d .login_name ,
639659 d .host_name ,
0 commit comments