KB4042232 — ИСПРАВЛЕНИЕ. Нарушение доступа при отмене ожидающего запроса, если функция отсутствующих индексов включена в SQL Server

Применяется к
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) 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 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

Проблема

Рассмотрим следующий сценарий.

  • У вас есть хранимая процедура, которая создает временную таблицу в Microsoft SQL Server.

  • Вы выполняете запрос, который выдает хранимая процедура, и запрос соответствует следующим условиям:

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

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

Решение

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

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

Накопительный пакет обновления 9 для SQL Server 2016 RTM

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

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

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

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

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

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

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

Временное решение

Решение этой проблемы заключается в включении флага трассировки (TF) 2392 , который будет подавлять коллекцию отсутствующих индексов.

Дополнительные сведения

Дополнительные сведения о функции отсутствующих индексов см. по следующей ссылке:

Функция "Отсутствующие индексы"

Состояние

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

Ссылки

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