Symptom
Anta att du använder Microsoft SQL Server 2016 och 2017. Om du aktiverar händelsen xml_deadlock_report för att samla in data för dödlägen rapporteras många xml_deadlock_report händelser för en enda deadlockförekomst inom frågor.
Lösning
Som en tillfällig lösning på det här problemet kan du samla in error_reported XEvent med hjälp av ett filter som error_number = 1205 i stället för xml_deadlock_report, som i följande exempel:
Obs
- SKAPA HÄNDELSESESSION [Deadlock_Collection] PÅ SERVERN
- LÄGG TILL HÄNDELSE sqlserver.error_reported(
- WHERE ([error_number]=(1205)))
- ADD TARGET package0.histogram(SET filtering_event_name=N'sqlserver.lock_acquired',source=N'sqlserver.query_hash')
- MED (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SEKUNDER,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=INGEN TRACK_CAUSALITY=PÅ,STARTUP_STATE=AV)
- GO
Lösning
Det här problemet åtgärdas i följande kumulativa uppdateringar för SQL Server:
Kumulativ uppdatering 10 för SQL Server 2017
Kumulativ uppdatering 2 för SQL Server 2016 SP2
Notera: Med den här korrigeringen rapporteras inga xml_deadlock_report-händelser för dödläge inom frågor när dödläget kan lösas utan att en tråd avslutas.
Om kumulativa uppdateringar för SQL Server:
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Senaste kumulativa uppdateringen för SQL Server 2017
Senaste kumulativa uppdateringen för SQL Server 2016
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Referenser
Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.