Sintomi
Supponiamo che tu usi Microsoft SQL Server 2016 e 2017. Se si Abilita l' xml_deadlock_report dell'evento per raccogliere dati per i deadlock, vengono segnalati molti eventi xml_deadlock_report per una singola occorrenza di deadlock intra-query.
Soluzione alternativa
Come soluzione alternativa per questo problema, è possibile raccogliere la error_reported XEvent utilizzando un filtro ERROR_NUMBER = 1205 anziché xml_deadlock_report, come illustrato nell'esempio seguente:
Crea sessione eventi [Deadlock_Collection] sul SERVER
Aggiungi SqlServer.error_reported eventi (
WHERE ([error_number] = (1205)))
Aggiungi destinazione package0. istogramma (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 SECONDI, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = NESSUNO, TRACK_CAUSALITY = ATTIVATO, STARTUP_STATE = DISATTIVATO)
ANDARE
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Aggiornamento cumulativo 10 per SQL Server 2017
Aggiornamento cumulativo 2 per SQL Server 2016 SP2
NotaCon questa correzione, non vengono segnalati eventi xml_deadlock_report per il deadlock intra-query quando il deadlock può essere risolto senza uccidere un thread.
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologiautilizzata da Microsoft per descrivere gli aggiornamenti software.