Вопрос:
Я изучаю индекс хранилища столбцов (функция Denali CTP3) и узнал, что он использует архитектуру VertiPaq для сжатия данных. Мне было интересно узнать, что это такое, как это работает, это архитектура. Я проверил в google, но не нашел удовлетворительного результата. Может кто-нибудь, пожалуйста, дайте мне знать подробно, как это, как это работает, алго/архитектура за этим и т.д.
И как это помогает в сжатии данных
Ответ №1
Я написал сообщение в блоге, которое, надеюсь, ответит на ваши вопросы по индексам столбцов: http://www.jamesserra.com/archive/2011/08/sql-server-%e2%80%9cdenali%e2%80%9d -project-аполлон/
Пожалуйста, дайте мне знать, если у вас остались вопросы.
Ответ №2
И как это помогает в сжатии данных
Компонент сжатия работает так хорошо, потому что очень часто данные в одном столбце не сильно отличаются. Представьте себе (упрощение) столбец, в котором хранятся значения из множественного (4) ввода выбора. В хранилище столбцов будет всего 4 уникальных значения, даже если в таблице содержится 8 миллионов записей. Это облегчает сжатие значений столбцов. Это, в свою очередь, упрощает установку индекса в память и, следовательно, быстрее запрашивает.
Когда данные хранятся по-разному, данные часто могут быть сжаты более эффективно, чем когда они хранятся по-разному. Как правило, в столбце больше избыточности, чем в строке, что обычно означает, что данные могут быть сжаты в большей степени. Когда данные более сжаты, для сбора данных в память требуется меньше IO. Кроме того, большая часть данных может находиться в заданном размере памяти. Уменьшение ввода-вывода может значительно ускорить время ответа на запрос. Сохранение большего количества вашего рабочего набора данных в памяти ускорит время отклика для последующих запросов, которые обращаются к тем же данным.
Источник: Подробнее о технологии столбцов