XML в SQL Server 2005? Лучше, чем JSON в Varchar? - PullRequest
2 голосов
/ 12 мая 2010

Каковы преимущества хранения XML в SQL Server по сравнению с хранением JSON в поле varchar?

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

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

Спасибо.

ОБНОВЛЕНИЕ : вот ответ на последнюю часть Q.

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

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

Ответы [ 5 ]

6 голосов
/ 12 мая 2010

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

Проверьте Поддержка XML в Microsoft SQL Server 2005 и Основы типа данных XML в SQL Server 2005 для получения дополнительной информации и дополнительной информации.

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

5 голосов
/ 12 мая 2010

Хранение его в формате XML позволяет использовать поддержку SQL XML: XPATH, XQUERY, индексы XML и другие. Это позволяет осуществлять эффективный поиск и манипулирование контентом. Я рекомендую вам прочитать Рекомендации по XML для Microsoft SQL Server 2005

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

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

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

1 голос
/ 12 мая 2010

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

1 голос
/ 12 мая 2010

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

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

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