MS SQL ColumnStore index - использование обычных индексов - PullRequest
0 голосов
/ 14 января 2020

Простите, если это простой вопрос, но я не могу найти какой-либо ясности и подумал, что опубликую его здесь.

Если у меня есть таблица, в которой я создал индекс columnstore, мне все еще нужен обычный индексы?

В моем примере у меня есть очень большая таблица с 1,2 миллиардами записей

, индекс столбца в ней определен следующим образом:

CREATE CLUSTERED COLUMNSTORE INDEX [IDX_123] 
   ON [dbo].[XXX] 
   WITH (DROP_EXISTING = OFF, COMPRESSION_DELAY = 0)

В дополнение к этому мы консультируем создали дополнительный некластеризованный индекс хранилища строк для каждого столбца в таблице: у нас есть 30, то есть 30 дополнительных индексов

Из моего тестирования кажется, что оптимизатор просто использует индекс columnstore, игнорируя индексы rowstore и мой вопрос, требуются ли они вообще?

1 Ответ

0 голосов
/ 14 января 2020

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

...