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 5cf63fe

Browse files
Merge pull request BrentOzarULTD#1303 from BrentOzarULTD/Issue_1302
Issue 1302
2 parents ce29832 + 4c10ae3 commit 5cf63fe

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

‎sp_BlitzLock.sql‎

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -370,13 +370,15 @@ SET @VersionDate = '20171201';
370370
FROM #deadlock_process AS dp
371371
JOIN #deadlock_owner_waiter AS dow
372372
ON dp.id = dow.owner_id
373+
AND dp.event_date = dow.event_date
373374
WHERE dp.is_victim = 0;
374375

375376
UPDATE dp
376377
SET dp.waiter_mode = dow.waiter_mode
377378
FROM #deadlock_process AS dp
378379
JOIN #deadlock_owner_waiter AS dow
379380
ON dp.victim_id = dow.waiter_id
381+
AND dp.event_date = dow.event_date
380382
WHERE dp.is_victim = 1;
381383

382384

@@ -471,6 +473,7 @@ SET @VersionDate = '20171201';
471473
FROM #deadlock_process AS dp
472474
JOIN #deadlock_owner_waiter AS dow
473475
ON dp.id = dow.owner_id
476+
AND dp.event_date = dow.event_date
474477
GROUP BY DB_NAME(dp.database_id), SUBSTRING(dp.wait_resource, 1, CHARINDEX(':', dp.wait_resource) - 1), dow.object_name
475478
)
476479
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
@@ -495,6 +498,7 @@ SET @VersionDate = '20171201';
495498
ds.id,
496499
ds.sql_handle,
497500
ds.proc_name,
501+
ds.event_date,
498502
PARSENAME(ds.proc_name, 3) AS database_name,
499503
PARSENAME(ds.proc_name, 2) AS schema_name,
500504
PARSENAME(ds.proc_name, 1) AS proc_only_name
@@ -516,6 +520,7 @@ SET @VersionDate = '20171201';
516520
FROM deadlock_stack AS ds
517521
JOIN #deadlock_owner_waiter AS dow
518522
ON dow.owner_id = ds.id
523+
AND dow.event_date = ds.event_date
519524
OPTION ( RECOMPILE );
520525

521526
IF @ProductVersionMajor >= 13
@@ -526,6 +531,7 @@ SET @VersionDate = '20171201';
526531
ds.id,
527532
ds.sql_handle,
528533
ds.proc_name,
534+
ds.event_date,
529535
PARSENAME(ds.proc_name, 3) AS database_name,
530536
PARSENAME(ds.proc_name, 2) AS schema_name,
531537
PARSENAME(ds.proc_name, 1) AS proc_only_name
@@ -546,6 +552,7 @@ SET @VersionDate = '20171201';
546552
FROM deadlock_stack AS ds
547553
JOIN #deadlock_owner_waiter AS dow
548554
ON dow.owner_id = ds.id
555+
AND dow.event_date = ds.event_date
549556
WHERE ds.proc_name <> 'adhoc'
550557
OPTION ( RECOMPILE );
551558
END;
@@ -567,6 +574,7 @@ SET @VersionDate = '20171201';
567574
FROM #deadlock_stack AS ds
568575
JOIN #deadlock_process AS dp
569576
ON dp.id = ds.id
577+
AND ds.event_date = dp.event_date
570578
WHERE ds.proc_name <> 'adhoc'
571579
GROUP BY DB_NAME(dp.database_id), ds.proc_name
572580
OPTION(RECOMPILE);
@@ -708,6 +716,7 @@ SET @VersionDate = '20171201';
708716
deadlocks
709717
AS ( SELECT dp.event_date,
710718
dp.id,
719+
dp.victim_id,
711720
dp.database_id,
712721
dp.log_used,
713722
dp.wait_resource,
@@ -720,7 +729,7 @@ SET @VersionDate = '20171201';
720729
FROM chopsuey AS c
721730
WHERE (dp.id = c.id
722731
OR dp.victim_id = c.id)
723-
AND dp.event_date = c.event_date
732+
AND dp.event_date = c.event_date
724733
FOR XML PATH(N''), TYPE ).value(N'.[1]', N'NVARCHAR(4000)'),
725734
1, 1, N'')) AS object_names,
726735
dp.wait_time,
@@ -736,12 +745,18 @@ SET @VersionDate = '20171201';
736745
dp.isolation_level,
737746
dp.process_xml.value('(//process/inputbuf/text())[1]', 'NVARCHAR(MAX)') AS inputbuf,
738747
ROW_NUMBER() OVER ( PARTITION BY dp.event_date, dp.id ORDER BY dp.event_date ) AS dn,
748+
DENSE_RANK() OVER ( ORDER BY dp.event_date ) AS en,
749+
ROW_NUMBER() OVER ( PARTITION BY dp.event_date ORDER BY dp.event_date ) -1 AS qn,
739750
dp.is_victim,
740751
ISNULL(dp.owner_mode, '-') AS owner_mode,
741752
ISNULL(dp.waiter_mode, '-') AS waiter_mode
742753
FROM #deadlock_process AS dp )
743754
SELECT d.event_date,
744-
DB_NAME(d.database_id) AS database_name,
755+
'Deadlock #'
756+
+ CONVERT(NVARCHAR(10), d.en)
757+
+ ', Query #' + CASE WHEN d.qn = 0 THEN N'1' ELSE CONVERT(NVARCHAR(10), d.qn) END
758+
AS deadlock_group,
759+
DB_NAME(d.database_id) AS database_name,
745760
CONVERT(XML, N'<inputbuf>' + d.inputbuf + N'</inputbuf>') AS query,
746761
d.object_names,
747762
d.isolation_level,
@@ -760,7 +775,7 @@ SET @VersionDate = '20171201';
760775
d.transaction_name
761776
FROM deadlocks AS d
762777
WHERE d.dn = 1
763-
ORDER BY d.event_date, d.last_batch_started, d.last_tran_started;
778+
ORDER BY d.event_date, is_victim DESC
764779

765780

766781

0 commit comments

Comments
(0)

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