Проблемы
При выполнении запроса, включающего инструкцию INSERT INTO... Инструкция SELECT, которая вставляет значения в кластеризованный индекс columnstore с секционированными в SQL Server 2014 или 2016, происходит взаимоблокировка внутри запроса.
Решение
Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server.
Накопительное обновление 5 для SQL Server 2016 RTM
Накопительное обновление 2 для SQL Server 2016 с пакетом обновления 1 (SP1)
Накопительное обновление 3 для SQL Server 2014 с пакетом обновления 2 Примечание. После установки этого обновления необходимо установить флаг трассировки 2469, чтобы включить исправление. Чтобы настроить флаг трассировки 2469, ознакомьтесь с разделом Флаги трассировки (Transact-SQL) на веб-сайте Microsoft Developer Network (MSDN).
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Обходное решение
Чтобы обойти эту проблему, воспользуйтесь одним из описанных ниже методов.
-
Сохраните промежуточные результаты инструкции SELECT во временной таблице, а затем вставьте результаты в кластеризованный индекс columnstore из временной таблицы.
-
Выполните запрос с помощью DOP = 1.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.