KB4040276 - ÅTGÄRDAT: Indirekta kontrollpunkter i tempdb-databas orsakar felet "Icke-fördr ut schemaläggare" i SQL Server 2016 och 2017

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:

Service Pack-information för SQL Server 2016

       Service Pack 2 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:

Senaste kumulativa uppdateringen för SQL Server 2017

Senaste versionen för SQL Server 2016

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:

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×