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


12

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

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


Ответы:


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.