Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e0a31ab

Browse files
Merge pull request BrentOzarULTD#1308 from BrentOzarULTD/Issue_1307
Pre-FRK fixing
2 parents 4939bf3 + 40ce1ff commit e0a31ab

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)

AltStyle によって変換されたページ (->オリジナル) /