Подтвердить что ты не робот

Поддерживается ли порядок столбцов в индексе столбцов в SQL Server 2012?

У меня есть таблица с ~ 200 миллионами строк и ~ 15 столбцов. Я планирую создать индекс хранилища столбцов в своей таблице. Будут ли какие-либо изменения в производительности на основе порядка столбцов, которые я использую в индексе хранилища столбцов? Если да, какова его логика?

4b9b3361

Ответ 1

Нет, это не имеет никакого значения.

Ответ 2

Самый важный аспект - добавить ВСЕ столбцы в индекс Columnstore. Я говорил с командой продукта MSFT об этом, потому что я скептически относился к утверждению, что "порядок столбцов не имеет значения". Но они подтвердили, что, пока вы добавляете все столбцы таблицы, это верно.

Я также попробовал частичные индексы столбцов (т.е. добавлял только подмножество столбцов), в то время как мне удалось получить запросы, которые я тестировал, чтобы использовать этот индекс столбцов, очевидно, что оптимизатор запросов не создан для этого сценария, поскольку планы выполнения будет несовместимым и не всегда оптимальным, т.е. использовать индексы столбцов и индексов, и т.д.

Ответ 3

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

Ответ 4

Это не так.

Я только что создал 2 часа назад индекс столбцов для моей таблицы фактов и стоимость запроса (относительно партии) теперь составляет 14% с индексом и 86% без индекса. Я думаю, это довольно хорошо. План выполнения ниже. Вы можете использовать "OPTION (IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX)", когда вы запускаете запрос для сравнения

http://uploadimage.ro/img.php?image=4508_execution_plan_sk6y.png