Problembeschreibung
Standardmäßig sind indirekte Prüfpunkte für die tempdb-Datenbank in Microsoft SQL Server 2016 und 2017 aktiviert. Unter Bedingungen mit hoher Arbeitsauslastung kann ein Fehler vom Typ "Nicht liefernder Scheduler" auftreten, und die sys.dm_os_spinlock_stats DMV zeigt erhöhte Spinlockkonflikte für den DP_LIST Spinlocktyp an.
Lösung
Diese Korrektur ist in den folgenden Updates und Service Pack enthalten:
-
Kumulatives Update 5 für SQL Server 2016 Service Pack 1
-
Kumulatives Update 8 für SQL Server 2016
Service Pack-Informationen für SQL Server 2016
Informationen zu SQL Server Builds
Jeder neue Build für SQL Server enthält alle Hotfixes und Sicherheitsfixes aus dem vorherigen Build. Es wird empfohlen, die neuesten kumulativen Updates für SQL Server zu installieren:
Service Packs sind kumulativ. Jedes neue Service Pack enthält neben neuen Updates alle Updates früherer Service Packs. Es wird empfohlen, das neueste Service Pack und das neueste kumulative Update für dieses Service Pack anzuwenden. Sie müssen also keine älteren Versionen eines Service Packs installieren, bevor Sie das neueste Service Pack installieren. Verwenden Sie Tabelle 1 im folgenden Artikel, um weitere Informationen zum neuesten Service Pack und zum neuesten kumulativen Update zu finden.
Ermitteln der Version, Edition und Updateebene von SQL Server und der zugehörigen Komponenten
Problemumgehung
Um dieses Problem zu umgehen, deaktivieren Sie indirekte Prüfpunkte in der tempdb-Datenbank mithilfe einer der folgenden DDL-Anweisungen (Data Definition Language).
Dies sollte wie folgt erfolgen:
-
Führen Sie in der datenbank modeldb (dadurch wird auch der Standardwert für neue Datenbanken geändert) die folgende Anweisung aus:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES -
Oder direkt in der tempdb-Datenbank bei jedem Start des instance mithilfe der SQL Server-Agent mithilfe der folgenden Anweisung:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
Oder stellen Sie in regelmäßigen Abständen manuelle Prüfpunkte für die tempdb-Datenbank aus, indem Sie die folgende Anweisung verwenden:
use tempdb
go checkpoint
go
Darüber hinaus kann TF 3468 verwendet werden, um den indirekten Prüfpunkt in tempdb zu deaktivieren.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet. Weitere Informationen finden Sie in den folgenden Artikeln: