Applies ToSQL 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)

Проблемы

По умолчанию для базы данных tempdb в Microsoft SQL Server 2016 и 2017 включены непрямые контрольные точки. В условиях интенсивной рабочей нагрузки может возникнуть ошибка "Планировщик не дает результатов", и динамическое административное представление sys.dm_os_spinlock_stats отображает состязание с повышенными параметров спин-блокировки для типа спин-блокировки DP_LIST.

Решение

Это исправление входит в следующие обновления и пакет обновления:

Сведения о пакете обновления для SQL Server 2016

       Пакет обновления 2 (SP2) для SQL Server 2016

Сведения о сборках SQL Server

Каждая новая сборка для SQL Server содержит все исправления и исправления безопасности, которые были в предыдущей сборке. Рекомендуется установить последние накопительные обновления для SQL Server:

Последнее накопительное обновление для SQL Server 2017

последняя сборка для SQL Server 2016 г.

Пакеты обновления являются накопительными. Каждый новый пакет обновления содержит все исправления, которые были в предыдущих пакетах обновления, а также все новые исправления. Мы рекомендуем применить последний пакет обновления и последнее накопительное обновление для этого пакета обновления. Вам не нужно устанавливать предыдущий пакет обновления перед установкой последнего пакета обновления. Дополнительные сведения о последнем пакете обновления и последнем накопительном обновлении см. в таблице 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.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Ссылки

Сведения о терминологии, которую корпорация Майкрософт использует для описания обновлений программного обеспечения. Дополнительные сведения см. в следующих статьях:

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.