Síntomas
Supongamos que usa Microsoft SQL Server 2016 y 2017. Si habilita la xml_deadlock_report de eventos para recopilar datos para interbloqueos, se notifican muchos eventos xml_deadlock_report para una única ocurrencia de interbloqueo dentro de la consulta.
Solución alternativa
Como solución alternativa a este problema, puede recopilar el error_reported XEvent mediante un filtro error_number = 1205 en lugar de xml_deadlock_report, como se muestra en el ejemplo siguiente:
Nota
- CREAR SESIÓN DE EVENTOS [Deadlock_Collection] EN EL SERVIDOR
- AGREGAR sqlserver.error_reported DE EVENTO(
- WHERE ([error_number]=(1205)))
- ADD TARGET package0.histogram(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)
- IR
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 xml_deadlock_report para el interbloqueo dentro de la consulta cuando este se puede resolver sin eliminar un subproceso.
Acerca de las actualizaciones acumulativas para SQL Server:
Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:
Actualización acumulativa más reciente para SQL Server 2017
Actualización acumulativa más reciente para SQL Server 2016
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Referencias
Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.