Проблема
Рассмотрим следующий сценарий.
У вас есть хранимая процедура, которая создает временную таблицу в 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, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.