Platí pro
SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions)

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:

Informace o aktualizaci Service Pack pro SQL Server 2016

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

Nejnovější kumulativní aktualizace pro SQL Server 2017

nejnovější build pro SQL Server 2016

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 tempdbgo checkpointgo  

    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:

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.