Skip to content

Commit 59f2514

Browse files
authored
Merge pull request #3773 from Tisit/sp_BlitzLock_DuplicatePlans
sp_BlitzLock - fix duplicate plans
2 parents 1bc395e + bce8ed2 commit 59f2514

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

sp_BlitzLock.sql

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1635,7 +1635,9 @@ BEGIN
16351635
dp.id,
16361636
dp.event_date,
16371637
proc_name = ca.dp.value('@procname', 'nvarchar(1024)'),
1638-
sql_handle = ca.dp.value('@sqlhandle', 'nvarchar(131)')
1638+
sql_handle = ca.dp.value('@sqlhandle', 'nvarchar(131)'),
1639+
stmtstart = ca.dp.value('@stmtstart', 'int'),
1640+
stmtend = ca.dp.value('@stmtend', 'int')
16391641
INTO #deadlock_stack
16401642
FROM #deadlock_process AS dp
16411643
CROSS APPLY dp.process_xml.nodes('//executionStack/frame') AS ca(dp)
@@ -4194,11 +4196,12 @@ BEGIN
41944196
ds.proc_name,
41954197
sql_handle =
41964198
CONVERT(varbinary(64), ds.sql_handle, 1),
4199+
ds.stmtstart,
4200+
ds.stmtend,
41974201
dow.database_name,
41984202
dow.database_id,
4199-
dow.object_name,
42004203
query_xml =
4201-
TRY_CAST(dr.query_xml AS nvarchar(MAX))
4204+
MAX(TRY_CAST(dr.query_xml AS nvarchar(MAX)))
42024205
INTO #available_plans
42034206
FROM #deadlock_stack AS ds
42044207
JOIN #deadlock_owner_waiter AS dow
@@ -4207,6 +4210,13 @@ BEGIN
42074210
JOIN #deadlock_results AS dr
42084211
ON dr.id = ds.id
42094212
AND dr.event_date = ds.event_date
4213+
GROUP BY
4214+
ds.proc_name,
4215+
CONVERT(varbinary(64), ds.sql_handle, 1),
4216+
ds.stmtstart,
4217+
ds.stmtend,
4218+
dow.database_name,
4219+
dow.database_id
42104220
OPTION(RECOMPILE);
42114221

42124222
SELECT
@@ -4360,6 +4370,8 @@ BEGIN
43604370
) AS deps
43614371
WHERE deqs.sql_handle = ap.sql_handle
43624372
AND deps.dbid = ap.database_id
4373+
AND (ap.stmtstart IS NULL OR deqs.statement_start_offset = ap.stmtstart)
4374+
AND (ap.stmtend IS NULL OR deqs.statement_end_offset = ap.stmtend)
43634375
) AS c
43644376
) AS ap
43654377
WHERE ap.query_plan IS NOT NULL

0 commit comments

Comments
 (0)