Имеет ли значение порядок столбцов в индексе columnstore?

12

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

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

Винай Кумар Челла
источник
1
Дубликат: stackoverflow.com/q/9971012/877069
Ник Чаммас

Ответы:

15

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

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

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

Аарон Бертран
источник
Если концепция столбцов высокой плотности не должна быть первой в порядке, а столбцы низкой плотности должны быть последними в порядке. Часто используемые столбцы должны быть первыми в порядке.
Винай Кумар Челла
1
Не то чтобы я это знал - индексы columnstore не работают так же, как традиционные индексы B-дерева.
Аарон Бертран
ОК. Я слышал на какой-то конференции, но не нашел никакого источника для этого. Давайте подождем еще несколько комментариев ...
Vinay Kumar Chella
2

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

Линн Лангит
источник
0

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

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

Нико Нойгебер
источник
0

Существует существующий отличный ответ Аарона из 2012 года, чтобы подробнее остановиться на этом ...

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

Джеймс Дженкинс
источник