Published on

February 2, 2015

Исследование архивного сжатия в SQL Server

В этой статье блога мы рассмотрим концепцию архивного сжатия в SQL Server. Архивное сжатие – это функция, введенная в SQL Server 2014, которая позволяет дополнительно сжимать данные в таблицах и индексах столбцового хранилища. Эта функция особенно полезна в хранилищах данных, где есть смесь часто используемых и редко используемых данных.

Прежде чем мы углубимся в детали, давайте разберемся в основах индексов столбцового хранилища. Индексы столбцового хранилища хранят данные в столбцовом формате, что обеспечивает значительные преимущества производительности для аналитических запросов. SQL Server 2014 ввел поддержку столбцового хранилища и архивного сжатия столбцового хранилища, что позволяет добиться еще большей эффективности хранения.

Архивное сжатие включается на уровне таблицы или раздела. Оно реализуется в виде дополнительного слоя сжатия потока поверх реализации индекса столбцового хранилища. При записи данных на диск они автоматически сжимаются, а при чтении с диска они автоматически разжимаются. Этот слой сжатия обеспечивает дополнительное уменьшение размера хранения, обычно составляющее от 25% до 60%+ в зависимости от данных.

Для применения архивного сжатия вы можете использовать команды T-SQL. Давайте рассмотрим несколько примеров:

-- Добавление архивного бита для одного раздела
ALTER TABLE tbl_myColumnStore REBUILD PARTITION = 1 WITH ( DATA_COMPRESSION = COLUMNSTORE_ARCHIVE );

-- Добавление архивного бита для всех разделов
ALTER TABLE tbl_myColumnStore REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = COLUMNSTORE_ARCHIVE );

-- Добавление столбцового хранилища для всех разделов и архива для определенных разделов
ALTER TABLE tbl_myColumnStore REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = COLUMNSTORE_ARCHIVE ON PARTITIONS (1, 3));

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

Если вы хотите разархивировать данные, которые были сжаты с помощью архивного сжатия, вы можете использовать следующую команду:

-- Отключение архивного бита и применение сжатия столбцового хранилища для всех разделов
ALTER TABLE tbl_myColumnStore REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = COLUMNSTORE );

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

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

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.