Проблемы
Рассмотрим следующий сценарий.
-
У вас есть таблица, в которой есть кластеризованные индексы columnstore, а в таблице — большое количество столбцов (в сотнях).
-
Данные (тип данных) этих столбцов являются весьма compressible данными, например varchar.
-
Для выбора большого набора или всех столбцов из этой таблицы выполняйте инструкцию SELECT в этой таблице.
-
У оператора SELECT есть предложение WHERE , которое ограничивает вывод для него очень небольшим количеством строк (запрос очень избирательен).
В этом случае вы можете столкнуться со следующими симптомами:
-
Параллельная рабочая нагрузка (другие запросы, которые выполняются одновременно на сервере в качестве этого запроса) может привести к снижению производительности и потере пропускной способности.
-
Вы можете наблюдать за периодическим использованием ЦП.
-
Если вы запрашиваете sys.dm_os_ring_buffers и просматривать записи типа SchedulerMonitor , вы обнаружите временные сообщения планировщика, не связанные с выведением, которые регистрируются во время выполнения этого запроса.
-
Может возникнуть ошибка планировщика, не выдается в журнале ошибок, и может быть создан файл дампа памяти симптома.
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server:
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Мы рекомендуем вам загрузить и установить последние накопительные обновления для SQL Server.
Дополнительная информация
Исправление данныхРаботники, которые обрабатывают сегменты столбцов (изменяя их и проверяя для них подходящих строк), использовали для "yield" загрузку ЦП другим сотрудникам и параллельным выполнениям запросов при выводе определенного порогового числа строк. Если предложение WHERE очень сильно настроило несколько строк, работники, образующие этот запрос, обрабатывали несжатые и большое количество сегментов (так как в этом случае требуется очень мало строк), прежде чем они задали ЦП, чтобы другие работники могли обработать свою рабочую нагрузку. Это привело к нерегулярной загрузке ЦП и снижению производительности для параллельной рабочей нагрузки. Исправление оптимизирует и улучшает алгоритм общего использования ЦП для таких запросов columnstore.
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.