Příznaky
Předpokládejme, že používáte Microsoft SQL Server 2016 a 2017. Pokud povolíte xml_deadlock_report událostí, aby shromažďovala data pro zablokování, bude hlášeno mnoho xml_deadlock_report událostí pro jeden výskyt zablokování v rámci dotazu.
Alternativní řešení
Tento problém obejdete tak, že error_reported XEvent shromáždíte tak, že použijete filtr error_number = 1205 místo xml_deadlock_report, jak je vidět v následujícím příkladu:
Poznámka
- VYTVOŘIT RELACI UDÁLOSTI [Deadlock_Collection] NA SERVERU
- ADD EVENT sqlserver.error_reported(
- WHERE ([error_number]=(1205)))
- ADD TARGET package0.histogram(SET filtering_event_name=N'sqlserver.lock_acquired',source=N'sqlserver.query_hash')
- S (MAX_MEMORY=4096 kB;EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS;MAX_DISPATCH_LATENCY=30 SEKUND,MAX_EVENT_SIZE=0 kB;MEMORY_PARTITION_MODE=ŽÁDNÝ;TRACK_CAUSALITY=ZAPNUTO;STARTUP_STATE=VYPNUTO)
- GO
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:
Kumulativní aktualizace 10 pro SQL Server 2017
Kumulativní aktualizace 2 pro SQL Server 2016 SP2
Poznámka: S touto opravou nejsou hlášeny žádné události xml_deadlock_report pro zablokování v rámci dotazu, pokud lze zablokování vyřešit bez ukončení vlákna.
Informace o kumulativních aktualizacích pro SQL Server:
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2017
Nejnovější kumulativní aktualizace pro SQL Server 2016
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.