KB3146123 - Улучшено создание плана запросов для некоторых запросов columnstore в SQL Server 2014 или 2016 гг.

Применяется к
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 Business Intelligence - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) 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)

Проблема

При выполнении запроса с объединением таблиц для кластеризованных таблиц columnstore и предложениях JOIN ON и WHERE ссылаются на одни и те же столбцы, SQL Server может не оценить хэш-соединение для соединения таблицы.

Причина

Эта проблема возникает из-за того, что ключи соединения удаляются из дерева запроса во время нормализации запроса. По умолчанию SQL Server не создает план хэш-соединения для соединений без ключей соединения.

Решение

Сведения о накопительном пакете обновления

Это улучшение появилось в следующем накопительном пакете обновления SQL Server. 

Рекомендация. Установите последний накопительный пакет обновления для SQL Server

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

      

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

Чтобы обойти эту проблему, добавьте в запрос подсказку OPTION (HASH JOIN).

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

Этот накопительный пакет обновления указывает, что SQL Server оценивает план соединения HASH при выполнении соединения для таблиц columnstore. Запросы, обращающиеся к таблицам columnstore, могут выиграть от хэш-соединения, так как хэш-соединение может выполняться в пакетном режиме.

Чтобы включить улучшение, добавьте флаг трассировки 2441 к параметрам запуска или добавьте OPTION (QUERYTRACE, 2441) в запрос.

Состояние

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