KB4316948 - ИСПРАВЛЕНО: Нарушение прав доступа при компиляции запроса и изменении гистограммы включено с оценкой количества по умолчанию в SQL Server 2016 и 2017

Применяется к
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core 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)

Проблема

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

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

В этом случае происходит нарушение прав доступа. Кроме того, появляется следующее сообщение об ошибке:

Примечание

MSG 596, уровень 21, состояние 1, номер строки
Невозможно продолжить выполнение, так как сеанс находится в состоянии "Убито".
MSG 0, уровень 20, состояние 0, номер строки
Возникла серьезная ошибка текущей команды.  Результаты, если таковые имеются, должны быть отброшены.

         Примечание Изменение гистограммы можно включить с помощью параметра запроса USE HINT('ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS') или флага трассировки 4139.

Решение

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

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

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

Сведения о сборках SQL Server

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

Последняя сборка SQL Server 2017

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

Состояние

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

Ссылки

DBCC TRACEON — флаги трассировки (Transact-SQL)

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