Проблемы
Рассмотрим следующий сценарий.
-
У вас есть хранимая процедура, создающая временную таблицу в 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 2017
Обходное решение
Чтобы устранить эту проблему, необходимо включить флаг трассировки (TF) 2392 , который будет подавлять сбор отсутствующих индексов.
Дополнительная информация
Чтобы получить дополнительные сведения о функции отсутствующих индексов, обратитесь к следующей ссылке:
Функция "отсутствующие индексы"
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией, которую корпорация Майкрософт использует для описания обновлений программного обеспечения.