Simptome
Să presupunem că utilizați Microsoft SQL Server 2016 și 2017. Dacă activați evenimentul xml_deadlock_report pentru a colecta date pentru blocaje, multe evenimente xml_deadlock_report sunt raportate pentru o singură apariție a blocajului în interiorul interogării.
Soluție de evitare
Ca soluție pentru această problemă, puteți colecta error_reported XEvent utilizând un filtru error_number = 1205 în loc de xml_deadlock_report, așa cum se vede în exemplul următor:
CREAREA SESIUNIi evenimentului [Deadlock_Collection] pe SERVER
Adăugarea evenimentului SqlServer.error_reported (
Unde ([error_number] = (1205)))
Adăugați TARGET package0. histogramă (setați filtering_event_name = N ' sqlserver.lock_acquired ', Source = N ' sqlserver.query_hash ')
WITH (MAX_MEMORY = 4096 KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 DE SECUNDE, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = ACTIVAT, STARTUP_STATE = DEZACTIVAT)
Accesați
Rezolvare
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
Actualizarea cumulativă 10 pentru SQL Server 2017
Actualizarea cumulativă 2 pentru SQL Server 2016 SP2
NotăCu această remediere, nu sunt raportate evenimente xml_deadlock_report pentru impas în interiorul interogării atunci când blocajul poate fi rezolvat fără a ucide un fir.
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Cea mai recentă actualizare cumulativă pentru SQL Server 2017
Cea mai recentă actualizare cumulativă pentru SQL Server 2016
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologiape care o utilizează Microsoft pentru a descrie actualizările de software.