Сжатие на уровне столбцов в SQL Server - PullRequest
4 голосов
/ 27 января 2012

У меня есть столбец, в котором я хотел бы хранить много текстовых данных (данные XML). Приблизительно 8000 символов в строке и около 100-500 строк в минуту.

Такое количество данных означает, что мне придется довольно агрессивно очищать колонку. (Поскольку мне приходится размещать свой SQL Server в сети SAN нашей компании, объем хранилища довольно дорогой.) Но если я найду способ сжать эти данные, я смогу хранить их дольше.

Я видел подобные статьи на с использованием CLR Integration для сжатия BLOB в SQL 2005.

Я также видел инструмент SQLCompress.NET для SQL Server 2005.

Кажется, что оба говорят, что они делают именно то, что я хочу. Сжатие данных одного столбца во время их хранения.

Однако инструмент был заброшен (с 2008 года обновлений не было), и я мало что знаю об интеграции CLR, за исключением того, что я слышал, что он может вызвать проблемы. Кроме того, оба эти решения предназначены для SQL Server 2005.

Итак, вот мой вопрос. Я использую SQL Server 2008 R2. Подойдет ли мне какое-либо из этих решений SQL Server 2005?

Или есть другое решение, которое я могу использовать для сжатия моих данных?

ПРИМЕЧАНИЕ: Сжатие строк и сжатие страниц не помогут с тем, что мне нужно (по крайней мере, насколько я могу видеть.) Сжатие строк хранит данные фиксированной длины в полях переменной длины, а сжатие страниц уменьшает количество экземпляров. избыточных данных. Ни один из них не поможет с большими блоками текста.

ПРИМЕЧАНИЕ II: Я видел этот вопрос , но в его ответе используется сжатие строк и страниц или FILESTREAM. Я не хочу использовать FILESTREAM, потому что теряю возможность зеркалировать свою базу данных.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

Вы можете попробовать использовать файловый поток для хранения документов xml и использовать NTFS для их сжатия.

См. Этот шаблон

Использование файлового потока в SQL2008

0 голосов
/ 27 января 2012

Я думаю, что лучше всего использовать клиентскую библиотеку для сжатия и распаковки данных перед их помещением в SQL Server, и, если вы хотите выполнять запрос по определенным элементам или атрибутам XML, вы можете извлечь ихи сохраняйте их в отдельных столбцах или нормализованных строках (что вы в любом случае хотели бы сделать - запрос больших текстовых столбцов XML, особенно для вложенных элементов, slow ).

...