Преимущество комбинирования кластеризованного индекса columnstore и некластеризованного индекса columnstore? - PullRequest
0 голосов
/ 27 мая 2020

Я столкнулся с вопросом о индексации большой таблицы фактов в хранилище данных с просьбой реализовать два индекса для оптимизации производительности, и был предложен ответ:

  • кластеризованный columnstore индекс (CCI)
  • и некластеризованный columnstore index (NCCI) в части столбцов

Поскольку CCI включает все столбцы таблицы, я бы подумал, что нет смысла объединять два индекса columnstore (один кластеризованный и один некластеризованный), а скорее go для:

  • кластеризованный columnstore индекс (CCI)
  • и некластеризованный rowstore индекс в части столбцов

(см. microsoft документация по руководству по проектированию индексов columnstore )

Какие преимущества, если таковые имеются, от объединения двух индексов columnstore (одного кластеризованного и одного некластеризованного) в большой таблице фактов в SQL Se rver база данных / хранилище данных ?

Вопрос, который вызвал мой вопрос, можно найти на этой странице , вопрос 70. Я не знаю, упустил ли я что-то или если их решение неточно.

Если бы кто-нибудь мог мне помочь, было бы здорово!

1 Ответ

0 голосов
/ 28 мая 2020

Поскольку CCI включает все столбцы таблицы, я бы подумал, что нет смысла объединять два индекса columnstore

На самом деле это даже не разрешено. Если вы попробуете, вы получите

Msg 35339, Level 16, State 1, Line 5
Multiple columnstore indexes are not supported.

Вопрос

enter image description here

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

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

...