Правильный способ ведения индекса SQLServer Cluster Columnstore - PullRequest
0 голосов
/ 15 февраля 2019

Обслуживание индекса Cluster Columnstore

Мы используем кластерный индекс columnstore в SqlServer 2016 для 400M строк.Мы проверяем время запроса выборки - это было 2 с сразу после создания индекса.Через месяц тот же запрос занял до 20-30 с.Полная фрагментация составляет 96%, заполненность страниц 66%, средний размер строки 20, глубина 3. Реорганизация индекса дает на 1% меньше фрагментации.Перестройка недоступна, так как нам нужны все данные онлайн.Мы вставляем 1 млн строк в день.Есть идеи?

Как получить производительность запроса, аналогичную начальной?

1 Ответ

0 голосов
/ 15 февраля 2019

Есть идеи?

Скорее всего, проблема связана с накладными расходами магазина дельты.Мы сталкивались с подобной проблемой в SQL Server 2016 и некоторое время решали проблему полной перестройки.Предложения:

  • Использовать разделы, возможно, ежемесячно или раз в две недели
  • Перестроить индекс на уровне раздела, это может значительно сократить продолжительность обслуживания.Ночной запуск перестроений.
  • Ожидание SQL Server 2019, MS поставляет перестройку ONLINE индексов со столбцами в этой версии

Реорганизация индекса дает на 1% меньше фрагментации

Было ли оно выполнено с COMPRESS_ALL_ROW_GROUPS?

ALTER INDEX idx_cci ON table  REORGANIZE WITH (COMPRESS_ALL_ROW_GROUPS = ON); 
ALTER INDEX idx_cci ON table  REORGANIZE;

Ссылки:

...