Проблема
Предположим, что в Microsoft SQL Server 2012 или SQL Server 2014 имеется некластеризованный индекс columnstore. Вы выполняете запрос в параллельном режиме, чтобы использовать функцию columnstore, и запрос объединяет индекс по нескольким присоединяющимся столбцам с результатами на стороне проверки, вычисленными в сложном выражении. В этой ситуации может возникнуть неверный результирующий набор.
Причина
При оптимизации выражений на стороне проверки хэш-соединения SQL Server принимает определенный порядок в столбцах хэш-соединений. Этот порядок может быть нарушен во время оптимизации запросов, что может привести к несовпадению хэш-соединений.
Решение
Эта проблема была впервые исправлена в следующем накопительном пакете обновления SQL Server:
- Накопительный пакет обновления 3 для SQL Server 2014 с пакетом обновления 1 (SP1)
- Накопительный пакет обновления 10 для SQL Server 2014
- Накопительный пакет обновления 8 для SQL Server 2012 с пакетом обновления 2 (SP2)
Рекомендация. Установите последний накопительный пакет обновления для SQL Server
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Рекомендуется скачать и установить последние накопительные пакеты обновления для SQL Server:
- Последний накопительный пакет обновления для SQL Server 2014 с пакетом обновления 1 (SP1)
- Последний накопительный пакет обновления для SQL Server 2014
- Последний накопительный пакет обновления для SQL Server 2012 с пакетом обновления 2 (SP2)
Временное решение
Для временного решения этой проблемы используйте один из следующих способов:
- Используйте подсказку запроса MAXDOP=1 при выполнении запроса.
- Выполните обновление до SQL Server 2014.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».