Ознаки
За замовчуванням непрямі контрольні точки ввімкнено для бази даних tempdb у Microsoft SQL ServerSQL Server 2016 та 2017. В умовах великого навантаження може виникнути помилка «Неврожайний планувальник», і sys.dm_os_spinlock_stats DMV покаже підвищений спінлок для типу DP_LIST spinlock.
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".
Спосіб усунення проблеми
Цю проблему вирішено в наведених нижче сукупних оновленнях для SQL ServerSQL Server:
- Сукупний пакет оновлень 16 для SQL ServerSQL Server 2017
- Сукупний пакет оновлень 7 для SQL ServerSQL Server 2016 SP2
Відомості про сукупні оновлення для SQL ServerSQL Server :
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Перегляньте останні сукупні оновлення для SQL Server.
- Останнє сукупне оновлення для SQL ServerSQL Server 2017
- Останнє сукупне оновлення для SQL ServerSQL Server 2016
Спосіб вирішення
Щоб вирішити цю проблему, вимкніть непрямі контрольні точки в базі даних tempdb за допомогою однієї з наведених нижче інструкцій Data Definition Language (DDL).
Зробити це потрібно в такий спосіб:
У базі даних modeldb (це також змінює значення за замовчуванням для нових баз даних) виконайте таку інструкцію:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTESАбо безпосередньо в базі даних tempdb щоразу, коли екземпляр запускається, використовуючи SQL Server AgentАгент SQL Server, використовуючи таку інструкцію:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTESАбо періодично виставляйте контрольні точки вручну проти бази даних tempdb, використовуючи таку інструкцію:
use tempdb
go checkpoint
goКрім того, TF 3468 може бути використаний для відключення непрямої контрольної точки на tempdb.
Посилання
Дізнайтеся, за допомогою яких термінів корпорація Майкрософт описує оновлення програмного забезпечення. Докладні відомості див. в цих статтях: