Problembeschreibung
Angenommen, Sie verwenden Microsoft SQL Server 2016 und 2017. Wenn Sie das Ereignis xml_deadlock_report aktivieren, um Daten für Deadlocks zu sammeln, werden viele xml_deadlock_report Ereignisse für ein einzelnes Deadlock-Ereignis innerhalb einer Abfrage gemeldet.
Problemumgehung
Um dieses Problem zu umgehen, können Sie die error_reported XEvent mithilfe eines Filters ERROR_NUMBER = 1205 anstelle von xml_deadlock_report sammeln, wie im folgenden Beispiel gezeigt:
Erstellen einer Ereignissitzung [Deadlock_Collection] auf dem Server
Ereignis SqlServer.error_reported hinzufügen (
Where ([ERROR_NUMBER] = (1205)))
Add Target package0. Histogramm (Satz filtering_event_name = n ' SqlServer.lock_acquired '; Quelle = n ' SqlServer.query_hash ')
Mit (MAX_MEMORY = 4096 KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 Sekunden, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = keine, TRACK_CAUSALITY = ein, STARTUP_STATE = aus)
Gehen
Fehlerbehebung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:
Kumulatives Update 10 für SQL Server 2017
Kumulatives Update 2 für SQL Server 2016 SP2
Hinweis: Mit diesem Fix werden keine xml_deadlock_report Ereignisse für Intra-Query-Deadlocks gemeldet, wenn der Deadlock aufgelöst werden kann, ohne einen Thread zu töten.
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie, mit der Microsoft Softwareupdates beschreibt.