Сжатие текстового поля в Sql Server 2k8 R2 - PullRequest
3 голосов
/ 05 апреля 2011

Итак, у меня есть приложение, которое хранит много текста в текстовом поле в SQL Server 2008 R2.Я добавляю около 5000 записей в день, и это будет расти.Объем данных в поле может составлять от 4 КБ до 100 КБ.

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

спасибо

Ответы [ 3 ]

3 голосов
/ 05 апреля 2011

В дополнение к сжатию строк / страниц вы можете использовать FILESTREAMS для хранения полей на сжатом диске NTFS.Но ваши файлы не такие большие, и сжатие будет лучшим выбором.

3 голосов
/ 05 апреля 2011

SQL Server 2008 R2 имеет три варианта сжатия:

Все три параметра применяются только к данным (строкам), поэтому ни один из них не может помочь с большими документами (BLOB).Таким образом, ваш лучший вариант - сжать / распаковать в клиенте (ZIP).Я бы не стал легко рассматривать этот вариант, это означает, что вы обмениваетесь на достоверность данных.

2 голосов
/ 11 мая 2011

Примечание:

В отношении совместимости FILESTREAMS :

  • Функция FILESTREAM доступна во всех версиях SQL Server 2008, включая SQL Server Express.
  • База данных SQL Server Express имеет ограничение 4 ГБ;однако это ограничение не применяется к данным FILESTREAM, хранящимся в базе данных SQL Server Express.

Однако вам требуется «Редакция разработчика» или «Редакция предприятия» для сжатия строк / страниц.

alter table pagevisit rebuild with (data_compression=page);

Сообщение 7738, уровень 16, состояние 2, строка 2 Не удается включить сжатие для объекта «PageVisit».Только SQL Server Enterprise Edition поддерживает сжатие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...