2010-08-18 2 views
0

Я только что переключил группы, и то, что они в настоящее время делают, это их средний уровень передает XML процедурам, а затем использует xquery/xpath для синтаксического анализа xml и использования его для получения информации и возврата обратно в приложение (RETURN XML). Мне было просто любопытно, если другие используют подобный процесс или просто передают данные непосредственно в процедуры. Мне очень нравится, насколько это гибко, но это действительно делает процедуры уродливыми, потому что вам нужно проанализировать XML, запросить свои данные и форматировать данные в xml (форматирование тривиально с SQL 2008).Передача XML в процедуры

Моей главной заботой является производительность. Мне нужно разобрать xml и поместить его в таблицы tmp или таблицы, чтобы я мог использовать его в своих запросах.

Любые мысли?

ответ

0

У меня был подобный подход, только для веб-сервисов, а не хранимых процедур. Я бы сказал, что это не очень хорошая практика, и ее следует избегать, если это абсолютно необходимо.

Основная проблема, вероятно, не в производительности, а в факте, что вы создаете компонент GIGO (мусор в мусоре), где у вас нет какого-либо официального контракта между абонентом и процедурой. Это означает, что неправильные данные ввода/вывода могут остаться незамеченными, и у вас будет адская отладка.

И да, вы также получите некоторый удар производительности (вероятно, на обоих слоях).

+1

Что делать, если XML-данные строго типизированы (имеется набор связанных с ним схем)? –

+0

Это лучше, но все же, для большинства случаев это слишком много. Не поймите меня неправильно. Я уверен, что есть случаи, когда передача XML в SP действительна, например, когда вам нужно передать сложную структуру в качестве параметра. Но если вы используете его для ВСЕХ процедур, то определенно есть что-то не так. – PiRX