Skip to content

Commit fb38a32

Browse files
committed
Adds stored proc deadlock counts
Hooray. Hooray. For scotch.
1 parent db144e4 commit fb38a32

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

sp_BlitzLock.sql

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ SET @VersionDate = '20171201';
349349
/*Get rid of nonsense*/
350350
DELETE dow
351351
FROM #deadlock_owner_waiter AS dow
352-
WHERE owner_id = waiter_id
352+
WHERE dow.owner_id = dow.waiter_id;
353353

354354
/*Add some nonsense*/
355355
ALTER TABLE #deadlock_process
@@ -363,14 +363,14 @@ SET @VersionDate = '20171201';
363363
FROM #deadlock_process AS dp
364364
JOIN #deadlock_owner_waiter AS dow
365365
ON dp.id = dow.owner_id
366-
WHERE dp.is_victim = 0
366+
WHERE dp.is_victim = 0;
367367

368368
UPDATE dp
369369
SET dp.waiter_mode = dow.waiter_mode
370370
FROM #deadlock_process AS dp
371371
JOIN #deadlock_owner_waiter AS dow
372372
ON dp.victim_id = dow.waiter_id
373-
WHERE dp.is_victim = 1
373+
WHERE dp.is_victim = 1;
374374

375375

376376
/*Begin checks based on parsed values*/
@@ -542,10 +542,17 @@ SET @VersionDate = '20171201';
542542
WHERE ds.proc_name <> 'adhoc'
543543
OPTION ( RECOMPILE );
544544
END;
545+
546+
547+
/*Check 8 gives you stored proc deadlock counts*/
545548

549+
SELECT ds.id, ds.proc_name, ds.sql_handle
550+
FROM #deadlock_stack AS ds
551+
WHERE ds.proc_name <> 'adhoc'
552+
OPTION(RECOMPILE);
546553

547554

548-
/*Check 8 gives you more info queries for sp_BlitzIndex */
555+
/*Check 9 gives you more info queries for sp_BlitzIndex */
549556
WITH bi AS (
550557
SELECT DISTINCT
551558
dow.object_name,
@@ -555,7 +562,7 @@ SET @VersionDate = '20171201';
555562
FROM #deadlock_owner_waiter AS dow
556563
)
557564
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
558-
SELECT 8 AS check_id,
565+
SELECT 9 AS check_id,
559566
bi.database_name,
560567
bi.schema_name + '.' + bi.table_name,
561568
'More Info - Table' AS finding_group,
@@ -567,7 +574,7 @@ SET @VersionDate = '20171201';
567574
FROM bi
568575
OPTION ( RECOMPILE );
569576

570-
/*Check 9 gets total deadlock wait time per object*/
577+
/*Check 10 gets total deadlock wait time per object*/
571578
WITH chop AS (
572579
SELECT SUBSTRING(dp.wait_resource,
573580
CHARINDEX(':', dp.wait_resource, CHARINDEX(':', dp.wait_resource)) + 2,
@@ -601,7 +608,7 @@ SET @VersionDate = '20171201';
601608
FROM suey AS s
602609
)
603610
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
604-
SELECT 9 AS check_id,
611+
SELECT 10 AS check_id,
605612
cs.database_name,
606613
cs.object_name,
607614
'Total object deadlock wait time' AS finding_group,
@@ -613,15 +620,15 @@ SET @VersionDate = '20171201';
613620
WHERE cs.object_name IS NOT NULL
614621
OPTION ( RECOMPILE );
615622

616-
/*Check 10 gets total deadlock wait time per database*/
623+
/*Check 11 gets total deadlock wait time per database*/
617624
WITH wait_time AS (
618625
SELECT DB_NAME(dp.database_id) AS database_name,
619626
SUM(CONVERT(BIGINT, dp.wait_time)) AS total_wait_time_ms
620627
FROM #deadlock_process AS dp
621628
GROUP BY DB_NAME(dp.database_id)
622629
)
623630
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
624-
SELECT 10 AS check_id,
631+
SELECT 11 AS check_id,
625632
wt.database_name,
626633
'-' AS object_name,
627634
'Total database deadlock wait time' AS finding_group,

0 commit comments

Comments
 (0)