В чем разница между кластеризованным и некластеризованным индексами columnstore по отношению к концепции страницы данных rowstore - PullRequest
2 голосов
/ 12 июня 2019
  1. В кластеризованный индекс на основе строк : все данные таблицы (все столбцы) упорядочены по столбцу кластеризованного индекса. Каждая страница содержит определенное количество строк и весь столбец.

  2. В некластеризованном индексе на основе строк - создается структура данных, которая содержит столбец индекса. Каждая страница индексированного столбца содержит построчные значения для этого столбца, и каждая строка указывает обратно на (другую страницу) строку ключа таблицы кластерного индекса или строку кучи (если кластерный индекс не существует) для оставшейся части данные.

Я понимаю концепцию columnstore index - в том смысле, что существуют группы строк. Каждая группа строк содержит один сегмент столбца (сжатый) для каждого столбца в таблице, и имеется дельта-хранилище для хранения вставок / обновлений до тех пор, пока не будет вызван следующий процесс перемещения кортежей. Исходя из вышеуказанных 2 пунктов индекса хранилища строк (стр.) , , подскажите, пожалуйста, как он работает в случае кластеризованного и некластеризованного индекса columnstore.

Пример. В случае хранилища некластеризованного индекса Columnstore это концептуально совпадает с некластеризованным индексом rowstore, то есть отдельной страницей для столбца индекса, значения которого указывают на кучу или ключ кластеризованного индекса.

1 Ответ

1 голос
/ 12 июня 2019

При сравнении хранилища строк и хранилища столбцов термин кластеризованный означает все столбцы, а некластеризованный означает некоторые столбцы (если только один не включает все столбцы).Нет другого аналога между разнородными архитектурами организации rowstore / columnstore.Лично я даже не использую слово index при обращении к columnstore, так как структура оптимизирована для сканирования, а не поиска, и часто приводит к путанице.

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

...