Symptom
Som standard är indirekta kontrollpunkter aktiverat för tempdb-databasen i Microsoft SQL Server 2016 och 2017. Under förhållanden med hög arbetsbelastning kan ett fel av typen "Schemaläggaren som inte ger" uppstå och sys.dm_os_spinlock_stats DMV visar förhöjda rotationslåset-innehåll för DP_LIST-rotationstypen.
Lösning
Den här korrigeringen ingår i följande uppdateringar och Service Pack:
-
Kumulativ uppdatering 5 för SQL Server 2016 Service Pack 1
-
Kumulativ uppdatering 8 för SQL Server 2016
Service Pack-information för SQL Server 2016
Om SQL Server-byggen
Varje ny version för SQL Server innehåller alla snabbkorrigeringar och säkerhetskorrigeringar som fanns i den föregående versionen. Vi rekommenderar att du installerar de senaste kumulativa uppdateringarna för SQL Server:
Service pack-paketen är kumulativa. Varje nytt Service Pack innehåller alla korrigeringar som finns i tidigare service pack samt eventuella nya korrigeringar. Vår rekommendation är att använda den senaste service pack-versionen och den senaste kumulativa uppdateringen för det service pack-paketet. Du behöver inte installera en tidigare Service Pack-version innan du installerar den senaste service pack-versionen. Använd tabell 1 i följande artikel för att hitta mer information om den senaste service pack-versionen och den senaste kumulativa uppdateringen.
Så här tar du reda på version, utgåva och uppdateringsnivå för SQL Server och dess komponenter
Lösning
Du kan komma runt det här problemet genom att inaktivera indirekta kontrollpunkter i tempdb-databasen med hjälp av något av följande DDL-uttryck (Data Definition Language).
Det bör du göra på följande sätt:
-
Kör följande instruktion på modeldb-databasen (detta ändrar också standardvärdet för nya databaser ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES):
-
Eller direkt på tempdb-databasen varje gång instansen startar genom att använda SQL Server-agenten med hjälp av följande uttryck: ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
Du kan också med jämna mellanrum skapa manuella kontrollpunkter mot tempdb-databasen genom att använda följande sats: use tempdb#x1 go
TF 3468 kan dessutom användas för att inaktivera indirekt kontrollpunkt på tempdb.
Status
Microsoft har bekräftat att det är ett problem i de Microsoft-produkter som listas i avsnittet "Gäller för".
Referenser
Läs mer om terminologin som Microsoft använder för att beskriva programuppdateringar. Mer information finns i följande artiklar: