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