SQL Server 2008 как база данных документов XML - PullRequest
2 голосов
/ 22 мая 2009

Кто-нибудь использовал SQL Server 2008 в качестве базы данных XML-документов? что вы думаете по этому поводу. Достаточно ли индексации и запросов типа данных XML для поддержки этого типа роли? Является ли производительность запросов XML приемлемой?

Ответы [ 2 ]

3 голосов
/ 23 мая 2009

Я не знаю, каковы именно ваши требования, сколько документов и о каких размерах мы здесь говорим.

SQL Server 2005 действительно позволяет вам задавать схемы XML, чтобы вы могли определенно получить некоторую проверку в уравнении, что, безусловно, полезно.

Что касается индексации XML - вы можете индексировать по трем различным стратегиям после создания основного первичного индекса XML.

  • первый тип индекса больше для оптимизации XPath для одного узла XML, когда вы выполняете много запросов на основе XPath для узлов (CREATE XML INDEX ..... FOR PATH)
  • второй тип индекса больше для оптимизации доступа к значениям внутри ваших узлов XML, когда вы ищите больше на основе значений в документе XML (CREATE XML INDEX ..... FOR VALUE)
  • третий - что-то вроде гибрида двух вышеперечисленных (честно говоря, я никогда не шутил; CREATE XML INDEX ..... FOR PROPERTY)

В наших примерах XML-индексы работали достаточно хорошо, но основным недостатком в нашем случае был большой размер индексов на диске. Наша база данных объемом 1,3 ГБ выросла до более чем 11 ГБ, просто добавив PRIMARY XML и индекс XML FOR PATH к примерно 45 000 записей с полем XML. Из-за ограничений диска нам пришлось убрать эти индексы: - (

Это на самом деле не так уж и удивительно, учитывая, как будет создаваться индекс XML с записями для каждого узла XML, атрибута и т. Д. - это просто много данных.

В итоге мы создали ряд хранимых функций, которые доходят до XML из нашей таблицы Entry, и мы извлекаем те фрагменты, которые нам нужны чаще всего. Теперь они хранятся в таблице Entry как вычисленные постоянные свойства. Это так же быстро, как «правильные» поля в таблице Entry, оно всегда актуально и устанавливается автоматически при вставке новых данных, и нам вряд ли когда-либо понадобится действительно использовать какие-либо значимые запросы XQuery.

Что я могу сказать из личного опыта, так это то, что, на мой взгляд, поддержка XML в SQL Server 2005 действительно достаточно глубока и продумана. В общем, я бы сказал - иди попробуй! Вы действительно не сможете сказать, работает ли он и достаточно ли хорошо масштабируется в вашем конкретном случае, пока вы не попробуете.

Марк

0 голосов
/ 22 мая 2009

Я не пробовал, но XML кажется мне слишком многословным. Я полагаю, что позже я могу сгенерировать xml из своих данных, зачем беспокоиться о сохранении его в XML.

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