Симптоми
Приемете, че използвате Microsoft SQL Server 2016 и 2017. Ако разрешите събитието xml_deadlock_report , за да съберете данни за заключени ситуации, много xml_deadlock_report събития се съобщават за една единична несъществуваща безизходица в заявка.
Заобиколно решение
Като заобиколно решение за този проблем можете да съберете error_reported XEvent с помощта на филтър error_number = 1205 вместо xml_deadlock_report, както е видно в примера по-долу:
СЪЗДАВАНЕ на сесия на събитие [Deadlock_Collection] на сървър
Добавяне на SQLServer.error_reported на събитие (
WHERE ([error_number] = (1205))
ДОБАВЕТЕ ЦЕЛЕВА package0. хистограма (НАБОР filtering_event_name = N "sqlserver.lock_acquired", "източник = N" sqlserver.query_hash ')
С (MAX_MEMORY = 4096 KB; EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 СЕКУНДИ, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = ВКЛ., STARTUP_STATE = ИЗКЛ.)
ОТИДЕТЕ
Решение
Този проблем е коригиран в следните сборни актуализации за SQL Server:
Кумулативна актуализация 10 за SQL Server 2017
Кумулативна актуализация 2 за SQL Server 2016 SP2
ЗабележкаС тази корекция няма докладвани събития за xml_deadlock_report за вътрешна заявка, когато безизходицата може да бъде разрешена, без да убивате нишка.
Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".
Препратки
Научете повече за терминологията, която Microsoft използва, за да опише софтуерни актуализации.