Сжатие столбца XML в SQL Server 2008 R2 - PullRequest
4 голосов
/ 11 июля 2011

Существует ли простой способ сжатия столбца с типом данных XML в стандартной версии SQL Server 2008 R2?

Мои ограничения:

  1. Стандарт SQL Server 2008 R2Edition;
  2. Необходимо хранить необработанный XMl в базе данных;

Ранее я задавал аналогичный вопрос об общем хранилище текста Сжатие текстового поля в Sql Server 2k8 R2 результатом которого стало использование FILESTREAMS.Если я сделаю это здесь, я потеряю все возможности XML, предоставляемые SQL Server, и я бы хотел использовать их.

Ответы [ 2 ]

4 голосов
/ 11 июля 2011

Вы всегда можете сохранить XML как NVARCHAR, а затем использовать функциональность XML в представлении для этого столбца, который сначала преобразует данные в XML.Однако вам придется взвесить, насколько эта работа во время выполнения компенсирует преимущества сжатия (будут существенные накладные расходы процессора, пропорциональные степени сжатия, которую вы фактически достигнете).Я могу понять желание делать подобные вещи в системе с вводом / выводом, но я подозреваю, что столбцы XML не являются кандидатами на сжатие именно по этой причине - затраты будут перевешивать преимущества чаще, чем нет.Если вы действительно намерены хранить данные в сжатом виде, и ваша самая большая проблема - это место для хранения, я бы подумал о том, чтобы позволить вашему приложению выполнять сжатие (C # здесь гораздо более гибок, чем T-SQL, и я ожидаю, что собственное сжатие)а также позвольте вашему приложению иметь дело с функциями XML.

0 голосов
/ 04 марта 2016

СЖАТИЕ СТРАНИЦ / СТРОК , единственный «простой» способ, который мне известен, не работает для столбцов XML, поскольку он не работает для больших страниц Существует обходной путь, использующий CLR-реализованное сжатие GZIP, как объяснено в этой очень хорошей статье . Один недостаток заключается в том, что весь XML должен помещаться в память при выполнении запросов. Кроме того, это может быть значительно медленнее, поэтому «вы должны быть осторожны и учитывать все… факторы» .

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