KB3150152 — ИСПРАВЛЕНО: неправильно вычисляется предполагаемое количество строк для предиката, включающего уникальный столбец GUID в SQL Server 2014 или 2016

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

Проблема

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

  • У вас есть запрос, который использует предикат неравенства для уникального столбца GUID в SQL Server 2014 или 2016.
  • Статистика обновляется с использованием выборки по умолчанию. Или новые строки вставляются в таблицу после последнего обновления статистики.
  • SQL Server использует средство оценки количества элементов, в котором для режима совместимости базы данных задано значение 120.
  • Значения GUID распределены по таблице неравномерно.

В этом сценарии при выполнении запроса может возникнуть снижение производительности из-за неправильно оцененного количества строк для предиката в плане запроса.

Решение

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

Накопительный пакет обновления 6 для SQL Server 2014 с пакетом обновления 1 (SP1)
        
         Накопительный пакет обновления 1 для SQL Server 2016
        
        
После установки этого накопительного пакета обновления необходимо включить флаг трассировки 4199. Для этого можно добавить параметр запуска -T4199. Или можно использовать инструкцию dbcc traceon(4199) для конкретного сеанса.

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

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

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

Состояние

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

Ссылки

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