Příznaky
Ve výchozím nastavení jsou nepřímé kontrolní body pro databázi tempdb v systému Microsoft SQL Server 2016 a 2017 zapnuté. V podmínkách velkého pracovního zatížení může dojít k chybě "Nepoddajný plánovač" a sys.dm_os_spinlock_stats DMV ukazuje zvýšenou kolizi spinlocku pro typ DP_LIST spinlock.
Řešení
Tato oprava je součástí následujících aktualizací a aktualizace Service Pack:
- Kumulativní aktualizace 1 pro SQL Server 2017
- Kumulativní aktualizace 5 pro SQL Server 2016 Service Pack 1
- Kumulativní aktualizace 8 pro SQL Server 2016
Informace o aktualizacích Service Pack pro SQL Server 2016
Service Pack 2 pro SQL Server 2016
O buildech systému SQL Server
Každý nový build pro SQL Server obsahuje všechny opravy hotfix a opravy zabezpečení, které byly v předchozím buildu. Doporučujeme nainstalovat nejnovější kumulativní aktualizace pro SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2017
Nejnovější build pro SQL Server 2016
Informace o aktualizacích Service Pack pro SQL Server:
Aktualizace Service Pack jsou kumulativní. Každá nová aktualizace Service Pack obsahuje všechny opravy z předchozích aktualizací Service Pack společně s novými opravami. Doporučujeme použít nejnovější aktualizaci Service Pack a nejnovější kumulativní aktualizaci pro tuto aktualizaci Service Pack. Před instalací nejnovější aktualizace Service Pack není nutné instalovat předchozí aktualizaci Service Pack. Další informace o nejnovější aktualizaci Service Pack a nejnovější kumulativní aktualizaci najdete v tabulce 1 v následujícím článku.
Jak zjistit verzi, edici a úroveň aktualizace systému SQL Server a jeho součástí
Alternativní řešení
Chcete-li tento problém obejít, vypněte nepřímé kontrolní body v databázi tempdb pomocí jednoho z následujících příkazů jazyka DDL (Data Definition Language).
To by mělo být provedeno následovně:
V databázi modeldb (tím se také změní výchozí hodnota pro nové databáze) spusťte následující příkaz:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTESNebo přímo v databázi tempdb při každém spuštění instance použitím agenta SQL Serveru pomocí následujícího příkazu:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTESNebo pravidelně zadávejte ruční kontrolní body pro databázi tempdb pomocí následujícího příkazu:
use tempdb
go checkpoint
go
Kromě toho lze TF 3468 použít k zakázání nepřímého kontrolního bodu na databázi tempdb.
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru. Další informace najdete v následujících článcích: