Skip to content

Commit 40ce1ff

Browse files
committed
Pre-FRK fixing
Remove dumb parsing
1 parent 4939bf3 commit 40ce1ff

File tree

1 file changed

+16
-68
lines changed

1 file changed

+16
-68
lines changed

sp_BlitzLock.sql

Lines changed: 16 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -566,37 +566,17 @@ SET @VersionDate = '20171201';
566566
OPTION ( RECOMPILE );
567567

568568
/*Check 10 gets total deadlock wait time per object*/
569-
WITH chop AS (
570-
SELECT SUBSTRING(dp.wait_resource,
571-
CHARINDEX(':', dp.wait_resource, CHARINDEX(':', dp.wait_resource)) + 2,
572-
LEN(dp.wait_resource)
573-
) AS chopped,
574-
dp.database_id,
575-
SUM(dp.wait_time) AS wait_time
576-
FROM #deadlock_process AS dp
577-
GROUP BY dp.wait_resource, dp.database_id
578-
),
579-
suey AS (
580-
SELECT SUBSTRING(c.chopped,
581-
CHARINDEX(':', c.chopped) + 1,
582-
CHARINDEX(':', c.chopped, CHARINDEX(':', c.chopped) + 1)
583-
- 1 - CHARINDEX(':', c.chopped)
584-
) AS obj_id,
585-
c.database_id,
586-
c.wait_time
587-
FROM chop AS c
588-
),
589-
chopsuey AS (
590-
SELECT *,
591-
DB_NAME(s.database_id) AS database_name,
592-
OBJECT_SCHEMA_NAME(s.obj_id, s.database_id) AS sch_name,
593-
OBJECT_NAME(s.obj_id, s.database_id) AS tbl_name,
594-
OBJECT_SCHEMA_NAME(s.obj_id, s.database_id)
595-
+ N'.'
596-
+ OBJECT_NAME(s.obj_id, s.database_id) AS object_name,
597-
CONVERT(VARCHAR(10), (s.wait_time / 1000) / 86400) AS wait_days,
598-
CONVERT(VARCHAR(20), DATEADD(SECOND, (s.wait_time / 1000), 0), 108) AS wait_time_hms
599-
FROM suey AS s
569+
WITH chopsuey AS (
570+
SELECT DISTINCT
571+
PARSENAME(dow.object_name, 3) AS database_name,
572+
dow.object_name,
573+
CONVERT(VARCHAR(10), (SUM(DISTINCT dp.wait_time) / 1000) / 86400) AS wait_days,
574+
CONVERT(VARCHAR(20), DATEADD(SECOND, (SUM(DISTINCT dp.wait_time) / 1000), 0), 108) AS wait_time_hms
575+
FROM #deadlock_owner_waiter AS dow
576+
JOIN #deadlock_process AS dp
577+
ON (dp.id = dow.owner_id OR dp.victim_id = dow.waiter_id)
578+
AND dp.event_date = dow.event_date
579+
GROUP BY PARSENAME(dow.object_name, 3), dow.object_name
600580
)
601581
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
602582
SELECT 10 AS check_id,
@@ -643,40 +623,8 @@ SET @VersionDate = '20171201';
643623

644624

645625

646-
647-
WITH chop AS (
648-
SELECT SUBSTRING(dp.wait_resource,
649-
CHARINDEX(':', dp.wait_resource, CHARINDEX(':', dp.wait_resource)) + 2,
650-
LEN(dp.wait_resource)
651-
) AS chopped,
652-
dp.id,
653-
dp.database_id,
654-
dp.event_date
655-
FROM #deadlock_process AS dp
656-
GROUP BY dp.id, dp.database_id, dp.wait_resource, dp.event_date
657-
),
658-
suey AS (
659-
SELECT SUBSTRING(c.chopped,
660-
CHARINDEX(':', c.chopped) + 1,
661-
CHARINDEX(':', c.chopped, CHARINDEX(':', c.chopped) + 1)
662-
- 1 - CHARINDEX(':', c.chopped)
663-
) AS obj_id,
664-
c.id,
665-
c.database_id,
666-
c.event_date
667-
FROM chop AS c
668-
),
669-
chopsuey AS (
670-
SELECT *,
671-
DB_NAME(s.database_id) AS database_name,
672-
OBJECT_SCHEMA_NAME(s.obj_id, s.database_id) AS sch_name,
673-
OBJECT_NAME(s.obj_id, s.database_id) AS tbl_name,
674-
OBJECT_SCHEMA_NAME(s.obj_id, s.database_id)
675-
+ N'.'
676-
+ OBJECT_NAME(s.obj_id, s.database_id) AS object_name
677-
FROM suey AS s
678-
),
679-
deadlocks
626+
/*Results*/
627+
WITH deadlocks
680628
AS ( SELECT dp.event_date,
681629
dp.id,
682630
dp.victim_id,
@@ -689,9 +637,9 @@ SET @VersionDate = '20171201';
689637
+ N' <object>'
690638
+ ISNULL(c.object_name, N'')
691639
+ N'</object> ' AS object_name
692-
FROM chopsuey AS c
693-
WHERE (dp.id = c.id
694-
OR dp.victim_id = c.id)
640+
FROM #deadlock_owner_waiter AS c
641+
WHERE (dp.id = c.owner_id
642+
OR dp.victim_id = c.waiter_id)
695643
AND dp.event_date = c.event_date
696644
FOR XML PATH(N''), TYPE ).value(N'.[1]', N'NVARCHAR(4000)'),
697645
1, 1, N'')) AS object_names,

0 commit comments

Comments
 (0)