Вопрос

У меня есть таблица с ~ 200 миллионами строк и ~ 15 столбцов. Я планирую создать COLUMNSTORE указатель на моем столе.

Будут ли какие -либо изменения в производительности на основе порядка столбцов, которые я использую в индексе Columnstore? Если да, какова логика?

Это было полезно?

Решение

Нет, порядок не имеет значения. Каждый столбец считается индивидуально.

От команды SQL Server (Акцент добавлен):

Как правило, вы захотите поместить все столбцы в свою таблицу в индекс Columnstore. Неважно, какой заказ вы перечислите столбцы Потому что индекс Columnstore не имеет ключа, как индекс B-Tree. Внутренне данные будут автоматически переупорядочены, чтобы получить наилучшее сжатие.

Другие советы

Заказ не имеет значения, что имеет значение, если вы должны включить все столбцы из базовой таблицы в индексе Columnstore - больше через мой предыдущий ответ на этот вопрос здесь

В SQL Server 2012-2016 у вас есть концепция устранения сегмента (http://social.technet.microsoft.com/wiki/contents/articles/5651.ronsting-segment-elimination.aspx), и вы на самом деле можете заставить порядок не менее 1 столбца (плюс 1 дополнительное внутри каждого разделения).

Рассмотрим следующую статью, которая объясняет загрузку данных для лучшего устранения сегмента: Загрузка данных для лучшего устранения сегмента

Существует Отличный ответ Аарона С 2012 года, чтобы расширить это ...

С SQL 2014+ у вас есть кластерные индексы Columnstore. При создании кластерного индекса Columnstore не существует вариантов выбора столбца или вариантов заказа. Описаны индексы Columnstore

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top