@@ -379,11 +379,117 @@ AS
379
379
NULL AS query_text
380
380
FROM bi;
381
381
382
+ /* Check 9 gets total deadlock wait time per database*/
383
+ WITH wait_time AS (
384
+ SELECT DB_NAME (dp .database_id ) AS database_name ,
385
+ SUM (CONVERT (BIGINT , dp .wait_time )) AS total_wait_time_ms
386
+ FROM #deadlock_process AS dp
387
+ GROUP BY DB_NAME (dp .database_id )
388
+ )
389
+ INSERT #deadlock_findings ( check_id, database_name , object_name , finding_group, finding, query_text )
390
+ SELECT 9 AS check_id,
391
+ wt .database_name ,
392
+ NULL AS object_name ,
393
+ ' Total deadlock wait time' AS finding_group,
394
+ ' This database has had '
395
+ + CONVERT (VARCHAR (10 ), (SUM ([total_wait_time_ms]) / 1000 ) / 86400 )
396
+ + ' :' + CONVERT (VARCHAR (20 ), DATEADD (s, (SUM ([total_wait_time_ms]) / 1000 ), 0 ), 108 )
397
+ + ' [d/h/m/s] of deadlock wait time.' ,
398
+ NULL AS query_text
399
+ FROM wait_time AS wt
400
+ GROUP BY wt .database_name
401
+
402
+
382
403
/* Thank you goodnight*/
383
404
INSERT #deadlock_findings ( check_id, database_name , object_name , finding_group, finding, query_text )
384
405
VALUES ( 0 , N ' sp_BlitzLock' , N ' SQL Server First Responder Kit' , N ' http://FirstResponderKit.org/' , N ' To get help or add your own contributions, join us at http://FirstResponderKit.org.' , NULL )
385
406
386
407
408
+ SELECT CONVERT (XML ,
409
+ N ' <Clickme> '
410
+ + NCHAR (10 )
411
+ + N ' Event Date: '
412
+ + CONVERT (NVARCHAR (30 ), CONVERT (DATETIME , owner .event_date))
413
+ + NCHAR (10 )
414
+ + N ' Owner Information '
415
+ + NCHAR (10 )
416
+ + N ' =================='
417
+ + NCHAR (10 )
418
+ + N ' Owner Process: '
419
+ + QUOTENAME (SUBSTRING (dow .owner_id , 8 , 128 ))
420
+ + NCHAR (10 )
421
+ + N ' Owner Login: '
422
+ + QUOTENAME (owner .login_name)
423
+ + NCHAR (10 )
424
+ + N ' Owner Lock Type: '
425
+ + QUOTENAME (dow .owner_mode )
426
+ + NCHAR (10 )
427
+ + N ' Owner Object: '
428
+ + QUOTENAME (dow .object_name )
429
+ + NCHAR (10 )
430
+ + N ' Owner Isolation level: '
431
+ + QUOTENAME (owner .isolation_level)
432
+ + NCHAR (10 )
433
+ + N ' Owner Transaction: '
434
+ + QUOTENAME (owner .transaction_name)
435
+ + NCHAR (10 )
436
+ + N ' Owner Transaction Count: '
437
+ + QUOTENAME (owner .transaction_count)
438
+ + NCHAR (10 )
439
+ + N ' Owner Application: '
440
+ + QUOTENAME (owner .client_app)
441
+ + NCHAR (10 )
442
+ + N ' Owner Host Name: '
443
+ + QUOTENAME (owner .host_name )
444
+
445
+ + NCHAR (10 )
446
+ + NCHAR (10 )
447
+
448
+ + N ' Victim Information '
449
+ + NCHAR (10 )
450
+ + N ' =================='
451
+ + NCHAR (10 )
452
+ + N ' Victim Process: '
453
+ + QUOTENAME (SUBSTRING (dow .waiter_id , 8 , 128 ))
454
+ + NCHAR (10 )
455
+ + N ' Victim Login '
456
+ + QUOTENAME (waiter .login_name )
457
+ + NCHAR (10 )
458
+ + N ' Victim Lock Type: '
459
+ + QUOTENAME (dow .waiter_mode )
460
+ + NCHAR (10 )
461
+ + N ' Victim Object: '
462
+ + QUOTENAME (dow .object_name )
463
+ + NCHAR (10 )
464
+ + N ' Victim Isolation level: '
465
+ + QUOTENAME (waiter .isolation_level )
466
+ + NCHAR (10 )
467
+ + N ' Victim Transaction: '
468
+ + QUOTENAME (waiter .transaction_name )
469
+ + NCHAR (10 )
470
+ + N ' Victim Transaction Count: '
471
+ + QUOTENAME (waiter .transaction_count )
472
+ + NCHAR (10 )
473
+ + N ' Victim Application: '
474
+ + QUOTENAME (waiter .client_app )
475
+ + NCHAR (10 )
476
+ + N ' Owner Host Name: '
477
+ + QUOTENAME (owner .host_name )
478
+
479
+ + NCHAR (10 )
480
+ + N ' </Clickme> '
481
+ )
482
+ AS [deadlock_story],
483
+ owner .input_buffer AS ' owner_query' ,
484
+ waiter .input_buffer AS ' victim_query'
485
+ FROM #deadlock_owner_waiter AS dow
486
+ JOIN (SELECT TOP 1 * FROM #deadlock_process AS dp) AS owner
487
+ ON owner .id = dow .owner_id
488
+ JOIN (SELECT TOP 1 * FROM #deadlock_process AS dp) AS waiter
489
+ ON waiter .id = dow .owner_id
490
+
491
+
492
+
387
493
SELECT df .check_id , df .database_name , df .object_name , df .finding_group , df .finding , df .query_text
388
494
FROM #deadlock_findings AS df
389
495
ORDER BY df .check_id ;
0 commit comments