KB4338715 — POPRAWKA: W SQL Server 2016 i 2017 r. zgłoszono wiele zdarzeń xml_deadlock_report dla jednego wystąpienia zakleszczenia wewnątrz zapytania

Dotyczy
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise

Objawy

Załóżmy, że używasz programu Microsoft SQL Server 2016 i 2017. Po włączeniu xml_deadlock_report zdarzeń w celu zbierania danych dotyczących zakleszczeń zgłaszanych jest wiele xml_deadlock_report zdarzeń dla jednego wystąpienia zakleszczenia wewnątrz zapytania.

Obejście

Aby obejść ten problem, można zebrać error_reported XEvent za pomocą filtru error_number = 1205 zamiast xml_deadlock_report, jak widać w poniższym przykładzie:

Uwaga

  • CREATE EVENT SESSION [Deadlock_Collection] ON SERVER
  • DODAWANIE ZDARZENIA sqlserver.error_reported(
  • WHERE ([error_number]=(1205)))
  • ADD TARGET package0.histogram(SET 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 SEKUND,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=BRAK,TRACK_CAUSALITY=WŁ,STARTUP_STATE=WYŁ.)
  • GO

Rozwiązanie

Ten problem został rozwiązany w następujących aktualizacjach zbiorczych programu SQL Server:

Aktualizacja zbiorcza 10 dla programu SQL Server 2017

Aktualizacja zbiorcza 2 dla programu SQL Server 2016 z dodatkiem SP2

Uwaga: Dzięki tej poprawce nie są zgłaszane żadne zdarzenia xml_deadlock_report dla zakleszczenia wewnątrz zapytania, gdy zakleszczenie można rozwiązać bez zabijania wątku.

Informacje o aktualizacjach zbiorczych programu SQL Server:

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Źródła informacji

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.