Symptomy
Domyślnie pośrednie punkty kontrolne są włączone dla bazy danych tempdb w programach Microsoft SQL Server 2016 i 2017. W warunkach dużego obciążenia pracą może wystąpić błąd harmonogramu "Bez plonowania", a sys.dm_os_spinlock_stats DMV pokazuje podwyższoną rywalizację o spinlock dla DP_LIST typu spinlocka.
Rozwiązanie
Ta poprawka jest zawarta w następujących aktualizacjach i dodatku Service Pack:
-
Aktualizacja zbiorcza 5 dodatku Service Pack 1 dla SQL Server 2016
-
Aktualizacja zbiorcza 8 dla SQL Server 2016
Informacje o dodatku Service Pack dla SQL Server 2016
Informacje o kompilacjach SQL Server
Każda nowa kompilacja dla SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które były w poprzedniej kompilacji. Zalecamy zainstalowanie najnowszych aktualizacji zbiorczych dla SQL Server:
Dodatki Service Pack są kumulatywne. Każdy nowy dodatek Service Pack zawiera wszystkie poprawki zawarte w poprzednich dodatkach Service Pack oraz nowe poprawki. Zalecamy zastosowanie najnowszego dodatku Service Pack i najnowszej aktualizacji zbiorczej dla tego dodatku Service Pack. Instalowanie poprzedniego dodatku Service Pack przed instalacją najnowszego dodatku Service Pack nie jest konieczne. Skorzystaj z tabeli 1 w poniższym artykule, aby uzyskać więcej informacji na temat najnowszego dodatku Service Pack i najnowszej aktualizacji zbiorczej.
Jak ustalić poziom wersji, wersji i aktualizacji SQL Server i jej składników
Obejście
Aby obejść ten problem, wyłącz pośrednie punkty kontrolne w bazie danych tempdb, używając jednej z następujących instrukcji języka DDL (Data Definition Language).
Należy to zrobić w następujący sposób:
-
W bazie danych modeldb (spowoduje to również zmianę wartości domyślnej dla nowych baz danych) uruchom następującą instrukcję:ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
Lub bezpośrednio w bazie danych tempdb za każdym razem, gdy wystąpienie jest uruchamiane przy użyciu agenta SQL Server przy użyciu następującej instrukcji:ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
Lub okresowo wydawać ręczne punkty kontrolne względem bazy danych tempdb, używając następującej instrukcji:use tempdbgo checkpointgo
Ponadto TF 3468 może być używany do wyłączania pośredniego punktu kontrolnego w tempdb.
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Informacje
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania. Aby uzyskać więcej informacji, zobacz następujące artykuły: