Skip to content

Commit dd8bc10

Browse files
committed
sp_BlitzLock - fix duplicate plans
1 parent 7c2a675 commit dd8bc10

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

sp_BlitzLock.sql

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1585,7 +1585,9 @@ BEGIN
15851585
dp.id,
15861586
dp.event_date,
15871587
proc_name = ca.dp.value('@procname', 'nvarchar(1024)'),
1588-
sql_handle = ca.dp.value('@sqlhandle', 'nvarchar(131)')
1588+
sql_handle = ca.dp.value('@sqlhandle', 'nvarchar(131)'),
1589+
stmtstart = ca.dp.value('@stmtstart', 'nvarchar(131)'),
1590+
stmtend = ca.dp.value('@stmtend', 'nvarchar(131)')
15891591
INTO #deadlock_stack
15901592
FROM #deadlock_process AS dp
15911593
CROSS APPLY dp.process_xml.nodes('//executionStack/frame') AS ca(dp)
@@ -4140,11 +4142,12 @@ BEGIN
41404142
ds.proc_name,
41414143
sql_handle =
41424144
CONVERT(varbinary(64), ds.sql_handle, 1),
4145+
ds.stmtstart,
4146+
ds.stmtend,
41434147
dow.database_name,
41444148
dow.database_id,
4145-
dow.object_name,
41464149
query_xml =
4147-
TRY_CAST(dr.query_xml AS nvarchar(MAX))
4150+
MAX(TRY_CAST(dr.query_xml AS nvarchar(MAX)))
41484151
INTO #available_plans
41494152
FROM #deadlock_stack AS ds
41504153
JOIN #deadlock_owner_waiter AS dow
@@ -4153,6 +4156,13 @@ BEGIN
41534156
JOIN #deadlock_results AS dr
41544157
ON dr.id = ds.id
41554158
AND dr.event_date = ds.event_date
4159+
GROUP BY
4160+
ds.proc_name,
4161+
CONVERT(varbinary(64), ds.sql_handle, 1),
4162+
ds.stmtstart,
4163+
ds.stmtend,
4164+
dow.database_name,
4165+
dow.database_id
41564166
OPTION(RECOMPILE);
41574167

41584168
SELECT
@@ -4306,6 +4316,8 @@ BEGIN
43064316
) AS deps
43074317
WHERE deqs.sql_handle = ap.sql_handle
43084318
AND deps.dbid = ap.database_id
4319+
AND deqs.statement_start_offset = ap.stmtstart
4320+
AND deqs.statement_end_offset = ap.stmtend
43094321
) AS c
43104322
) AS ap
43114323
WHERE ap.query_plan IS NOT NULL

0 commit comments

Comments
 (0)