Разница между некластеризованным индексом на основе строк и индексом хранилища столбцов - PullRequest
0 голосов
/ 15 сентября 2018

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

ID, Name, family, Description

Сценарии создания индекса:

CREATE NONCLUSTERED INDEX IX_Name   
ON TestTable (Name);   


CREATE NONCLUSTERED COLUMNSTORE INDEX IX_Name_CS 
ON TestTable (Name);   

Я думаю, что на странице индекса два вышеуказанных индекса имеют одинаковую структуру?Так в чем же разница между двумя указанными индексами?

1 Ответ

0 голосов
/ 15 сентября 2018

Индексы Row-store и column-store весьма различны. Вы просмотрели документацию ?

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

С другой стороны, индексы хранилища столбцов обычно не используются для поиска индекса операций. Как правило, весь столбец сканируется. Поскольку столбец в индексе хранилища столбцов в строке намного меньше, это намного быстрее, чем полное сканирование таблицы. Это также обычно быстрее, чем сканирование индекса хранилища строк с одним столбцом.

Какой индекс использовать, зависит от типов запросов, которые вы хотите выполнить. Я подозреваю, что для одного столбца хранилище строк больше подходит в большинстве ситуаций.

...