Проблемы
По умолчанию для базы данных tempdb в Microsoft SQL Server 2016 и 2017 включены непрямые контрольные точки. В условиях интенсивной рабочей нагрузки может возникнуть ошибка "Планировщик не дает результатов", и динамическое административное представление sys.dm_os_spinlock_stats отображает состязание с повышенными параметров спин-блокировки для типа спин-блокировки DP_LIST.
Решение
Это исправление входит в следующие обновления и пакет обновления:
-
Накопительный пакет обновления 5 для SQL Server 2016 с пакетом обновления 1 (SP1)
-
Накопительный пакет обновления 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 tempdb#x1 go
:Кроме того, TF 3468 можно использовать для отключения косвенной контрольной точки в базе данных tempdb.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Сведения о терминологии, которую корпорация Майкрософт использует для описания обновлений программного обеспечения. Дополнительные сведения см. в следующих статьях: