Применяется к
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use)

Проблемы

В Microsoft SQL Server 2016 или SQL Server 2017 в Windows производительность может снизиться при следующих условиях:

  • При выполнении нескольких одновременных операций INSERTSELECT во временных таблицах.

  • При запросе sys.dm_os_waiting_tasks. В этом случае в столбце resource_description отображаются ожидания на страницах PFS для нескольких запросов.

Причина

Параллелизм INSERT для операций INSERTSELECT появился в Windows SQL Server 2016 г. или SQL Server 2017 г. InSERT в локальных временных таблицах (только те, которые определены префиксом #, а не глобальные временные таблицы, определяемые префиксами ##) теперь автоматически включаются для параллелизма без указания указания TABLOCK, необходимого для не временных таблиц. Хотя параллелизм INSERT обычно повышает производительность запросов, при наличии значительного числа параллельных операций с временной таблицей INSERTSELECT состязание может быть значительным на страницах PFS. В некоторых случаях это может привести к общему снижению производительности.

Решение

Эта проблема впервые устранена в SQL Server 2016 с пакетом обновления 1 (SP1). После применения SQL Server 2016 с пакетом обновления 1 (SP1) в INSERT.. По умолчанию функция SELECT to local temporary tables отключена, что сокращает количество состязаний на странице PFS и повышает общую производительность параллельной рабочей нагрузки. Если требуется параллелизм INSERT с локальными временными таблицами, пользователи должны использовать подсказку TABLOCK при вставке в локальную временную таблицу.Если вы включили флаг трассировки 9495, упомянутый в разделе обходного решения, рекомендуется отключить и удалить флаг трассировки после применения SQL Server 2016 с пакетом обновления 1 (SP1), так как флаг трассировки 9495 отключает параллельную вставку независимо от указания TABLOCK.

Сведения о накопительном пакете обновления

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

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

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

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

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