KB4058174 — ИСПРАВЛЕНО: в SQL Server 2016 или 2017 возникает сильный конфликт tempdb

Применяется к
SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows

Проблема

Предположим, что вы создаете или удаляете большое количество временных таблиц в Microsoft SQL Server 2016 или 2017. Определенная рабочая нагрузка приложения делает недействительным кэш временных таблиц. Например, вы создаете временные таблицы, а затем создаете функции ALTER TABLE или CREATE INDEX, которые аннулируют кэш временных таблиц. В этой ситуации могут возникнуть следующие проблемы:

  • Возникает конфликт языка описания данных (DDL) в базе данных tempdb в системном каталоге sysobjvalues и возникает большое количество сеансов, ожидающих типов ожидания PAGELATCH_EX, PAGELATCH_SH и PAGELATCH_UP.

  • Эта ситуация также влияет на рабочую нагрузку, если количество записей превышает 4000. Однако это может варьироваться в зависимости от рабочей нагрузки. См. пример ниже.
    SELECT [name], [type], [entries_count], [entries_in_use_count]
    FROM sys.dm_os_memory_cache_counters
    WHERE [type] = N'CACHESTORE_TEMPTABLES'

    Имя ввод с клавиатуры entries_count entries_in_use_count
    Временные таблицы & переменные таблицы CACHESTORE_TEMPTABLES < Количество> < Количество>

Решение

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

Накопительный пакет обновления 5 для SQL Server 2017

Накопительный пакет обновления 8 для SQL Server 2016 с пакетом обновления 1 (SP1)

Сведения о накопительных обновлениях для SQL Server:

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

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

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

Состояние

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

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.