@@ -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