Simptomi
Pieņemsim, ka izmantojat Microsoft SQL Server 2016 un 2017. Ja iespējojat notikuma xml_deadlock_report datu apkopošanai par strupceļu, daudzi xml_deadlock_report notikumi tiek ziņoti par vienu iekšējo vaicājumu bloķēšanas gadījumu.
Risinājums
Lai atrisinātu šo problēmu, varat savākt error_reported XEvent, izmantojot filtru error_number = 1205, nevis xml_deadlock_report, kā redzams tālāk esošajā piemērā:
NOTIKUMA sesijas izveide [Deadlock_Collection] serverī
Pievienot notikuma sqlserver.error_reported (
WHERE ([error_number] = (1205)))
PIEVIENOT mērķa package0. Histogramma (iestatīt filtering_event_name = N "sqlserver.lock_acquired", avots = N "sqlserver.query_hash")
AR (MAX_MEMORY = 4096 KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 SEKUNDES, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = NAV, TRACK_CAUSALITY = IESLĒGTS, STARTUP_STATE = IZSLĒGTS)
IET
Risinājums
Šī problēma ir novērsta tālāk norādītajos kumulatīvajos SQL Server atjauninājumos:
Kumulatīvais atjauninājums 10 SQL Server 2017
SQL Server 2016 SP2 kumulatīvais atjauninājums 2
PiezīmeIzmantojot šo labojumu, nav ziņots par xml_deadlock_report notikumiem, kas ir pieejami iekšējai izmeklēšanai, kad izejat no strupceļa, nenogalinot pavedienu.
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Atsauces
Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.