Каков наилучший способ генерировать XML из данных в базе данных? - PullRequest
0 голосов
/ 28 февраля 2009

Если у меня есть тысячи иерархических записей, которые можно взять из базы данных и сгенерировать XML, каков будет лучший способ сделать это с хорошей производительностью и меньшей загрузкой ЦП?

Ответы [ 3 ]

7 голосов
/ 28 февраля 2009

Вы можете вывести XML напрямую из SQL Server 2005, используя

FOR XML    

Результаты запроса возвращаются в виде документа XML. Должен использоваться с один из трех RAW, АВТО и EXPLICIT опции

RAW

Каждая строка в наборе результатов представляет собой элемент XML с общим идентификатор как тег элемента

AUTO    

Результаты возвращаются в простом вложенное дерево XML. Элемент будет генерироваться для каждого поля таблицы в Предложение SELECT

EXPLICIT    

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

XMLDATA

Возвращает схему, но не добавляет корневой элемент к результату

ELEMENTS    

Указывает, что столбцы возвращается как дочерние элементы таблицы элемент. Если не указано, они отображаются как атрибутов

Одновременное создание встроенной XSD-схемы с использованием

XMLSCHEMA

Вы можете обрабатывать нулевые значения в записях, используя

XSINIL

Вы также можете вернуть данные в двоичном виде.

Возможно, вы захотите посмотреть MSDN для поддержки XML в SQL Server 2005 , для таких технологий, как XQuery, тип данных XML и т. Д.

2 голосов
/ 28 февраля 2009

Это зависит - если ваши серверы приложений и баз данных находятся на разных компьютерах, вам нужно указать, на каком процессоре вы хотите снизить нагрузку. Если ваша база данных уже загружена, вам лучше выполнить преобразование XML на сервере приложений, в противном случае используйте возможности SQL Server FOR XML.

1 голос
/ 28 февраля 2009

У Oracle есть инструменты для этого, так что, я думаю, SQL-сервер тоже есть, но вам понадобится схема. Лично для небольшого набора я использую скрипт php, который у меня есть, но для больших вещей с необходимостью настройки это другая история.

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