Síntomas
Suponga que usa Microsoft SQL Server 2016 y 2017. Si habilita el xml_deadlock_report de eventos para recopilar datos de interbloqueos, se informará de muchos xml_deadlock_report eventos para una única incidencia dentro de un interbloqueo.
Solución alternativa
Como solución para este problema, puede recopilar el error_reported XEvent con un filtro error_number = 1205 en lugar de xml_deadlock_report, como se muestra en el siguiente ejemplo:
CREAR sesión de eventos [Deadlock_Collection] en el servidor
Agregar SQLServer.error_reported de eventos (
WHERE ([error_number] = (1205)))
Agregar destino package0. histograma (SET filtering_event_name = N ' sqlserver.lock_acquired ', Source = N ' sqlserver.query_hash ')
CON (MAX_MEMORY = 4096 KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 SEGUNDOS, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = ON, STARTUP_STATE = OFF)
GO
Resolución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Actualización acumulativa 10 para SQL Server 2017
Actualización acumulativa 2 para SQL Server 2016 SP2
Nota :Con esta corrección, no se notifican eventos de xml_deadlock_report para el bloqueo interno de la consulta cuando el bloqueo puede resolverse sin matar un subproceso.
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga más información sobre la terminologíaque Microsoft usa para describir las actualizaciones de software.