Příznaky
Ve výchozím nastavení jsou nepřímé kontrolní body pro databázi tempdb v Microsoft SQL Server 2016 a 2017 zapnuté. V podmínkách s velkým zatížením může dojít k chybě "Nevýnosný plánovač" a zobrazení dynamické správy sys.dm_os_spinlock_stats zobrazí kolize se zvýšenými zámeky pro typ spinlocku DP_LIST.
Řešení
Tato oprava je součástí následujících aktualizací a aktualizací Service Pack:
-
Kumulativní aktualizace 5 pro SQL Server 2016 Service Pack 1
-
Kumulativní aktualizace 8 pro SQL Server 2016
Informace o aktualizaci Service Pack pro SQL Server 2016
Informace o SQL Server buildech
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:
Aktualizace Service Pack jsou kumulativní. Každá nová aktualizace Service Pack obsahuje všechny opravy, které jsou v předchozích aktualizacích Service Pack, a všechny nové opravy. Doporučujeme použít nejnovější aktualizaci Service Pack a nejnovější kumulativní aktualizaci pro danou aktualizaci Service Pack. Před instalací nejnovější aktualizace Service Pack nemusíte 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 určit verzi, edici a úroveň aktualizace SQL Server a jejích součástí
Řešení
Chcete-li tento problém vyřešit, vypněte nepřímé kontrolní body databáze tempdb pomocí některého z následujících příkazů jazyka DDL (Data Definition Language).
To by mělo být provedeno následujícím způsobem:
-
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 MINUTES -
Nebo přímo v databázi tempdb při každém spuštění instance pomocí agenta SQL Server pomocí následujícího příkazu:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
Nebo pravidelně vystavovat 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 v databázi tempdb.
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Odkazy
Seznamte se s terminologií, kterou Microsoft používá k popisu aktualizací softwaru. Další informace najdete v následujících článcích: