Симптоми
По подразбиране непреките контролни точки са включени за базата данни tempdb в Microsoft SQL Server 2016 и 2017. При тежки условия на работно натоварване може да възникне грешка "Планировчик с непостигане" и sys.dm_os_spinlock_stats DMV показва повишено разредка на брояча за DP_LIST тип брояч.
Решение
Тази корекция е включена в следните актуализации и сервизен пакет:
-
Кумулативна актуализация 5 за SQL Server 2016 Service Pack 1
-
Кумулативна актуализация 8 за SQL Server 2016
Информация за сервизни пакети за SQL Server 2016
За компилациите за SQL Server
Всяка нова компилация за SQL Server съдържа всички горещи поправки и корекции на защитата, които са били в предишната компилация. Препоръчваме да инсталирате най-новите кумулативни актуализации за SQL Server:
Сервизните пакети са кумулативни. Всеки нов сервизен пакет съдържа всички корекции, които са в предишни сервизни пакети, заедно с всички нови корекции. Нашата препоръка е да приложите най-новия сервизен пакет и най-новата кумулативна актуализация за този сервизен пакет. Не е необходимо да инсталирате предишен сервизен пакет, преди да инсталирате най-новия сервизен пакет. Използвайте таблица 1 в следната статия за намиране на повече информация относно най-новия сервизен пакет и най-новата кумулативна актуализация.
Как да определите нивото на версията, изданието и актуализацията на SQL Server и неговите компоненти
Заобиколно решение
За да заобиколите този проблем, изключете непреките контролни точки в базата данни tempdb, като използвате една от следните команди на езика за дефиниране на данни (DDL).
Това трябва да се направи, както следва:
-
В базата данни modeldb (това променя и стойността по подразбиране за нови бази данни), изпълнете следната команда:ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
Или директно в базата данни tempdb всеки път, когато екземплярът се стартира с помощта на Агент на SQL Server с помощта на следната команда:ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
Или периодично издавайте ръчни контролни точки за базата данни tempdb с помощта на следната команда:use tempdbgo checkpointgo
Освен това TF 3468 може да се използва за забраняване на непряка контролна точка при tempdb.
Статут
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са изброени в раздела "Отнася се за".
Препратки
Научете повече за терминологията, която Microsoft използва за описване на актуализациите на софтуера. Вижте следните статии за повече информация: