2010-05-12 3 views
2

Каковы преимущества хранения XML в SQL Server при хранении JSON в поле varchar?XML в SQL Server 2005? Лучше, чем JSON в Varchar?

Какое-либо учебное пособие доступно для эффективного использования типа данных XML?

Должен ли я предоставить схему dtd/xml? Я слышал, что это необязательно, не так ли?

спасибо.

UPDATE: вот ответ на последнюю часть Q.

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

цитировал: http://msdn.microsoft.com/en-us/library/ms345117(SQL.90).aspx

ответ

6

XML в SQL Сервер 2005 и выше позволяет вам напрямую манипулировать XML, хранящимся в таблице базы данных, с помощью XQuery - вы не можете сделать это с JSON в поле VARCHAR.

Отъезд XML Support in Microsoft SQL Server 2005 и Fundamentals of the XML Datatype in SQL Server 2005 для получения дополнительной информации и более фона.

Кроме того, XML, хранящийся в столбце XML в SQL Server, является «токенизированным» и предварительно обработанным - он не просто сохраняется как обычный текст. И вы даже можете поместить индексы на свой XML - на свои узлы, свои значения - все, что вам нужно.

1

вы можете запросить для отдельных значений свойств XML, если вы используете тип данных XML. Я не верю, что та же функциональность доступна для JSON:
http://msdn.microsoft.com/en-us/library/ms191474.aspx

Я не верю, что XSD требуется, как я использовал функцию запроса без что определена до

+0

- эффективный запрос? – Henry

+0

Честно говоря, я не знаю ... функция, которую я реализовал, может также использовать json, поскольку она использовалась только как хранилище blob. Хотя я нашел полезным несколько раз устранить некоторые проблемы, которые я мог запросить в этом поле. Таким образом, у меня никогда не было функции производства, используйте это –

+1

@Henry: вы можете добавить индексы xml, чтобы помочь при необходимости: http://msdn.microsoft.com/en-us/library/ms345121%28SQL.90%29.aspx –

5

Хранение его в формате XML позволяет использовать поддержку XML XML: XPATH, XQUERY, XML-индексы и т. Д. Они обеспечивают эффективный поиск и обработку содержимого. Я рекомендую вам прочитать XML Best Practices for Microsoft SQL Server 2005

Содержание JSON в VARCHAR будет непрозрачным для поиска и манипулирования.

2
  1. XML может быть проиндексирован для более эффективного запроса.
  2. Данные могут быть извлечены из данных XML usng XPath.
  3. Может быть предоставлена ​​схема, которая бы ограничивала XML для защиты, но это необязательно.
  4. Клиентские библиотеки подготавливают XML-тип данных и могут отправлять/получать его более тщательно/легко.

Ничего из перечисленного не доступно для JSON, хранящегося в varchar.

1

Хранение XML в SQL 2005 замечательно. Вы можете поместить весь XML-файл в одно поле, затем запустите команды SELECT, чтобы вытащить определенные атрибуты и элементы.Установка XSD не требуется. Я не верю, что это поддержка JSON даже в 2008 году, хотя я могу ошибаться. Here's a good starter article на нем.

Смежные вопросы