Сервер СЗЛ - Использование интеграции CLR для использования веб-службы

Есть несколько tutorials on the web that describe consuming a Web Service using SQL Server 2005's CLR integration. For the most, the process seems pretty convoluted. I've run into several issues including the need to change my database's trust level, and using the sgen tool to create a static XmlSerializer assembly; and I still haven't gotten it working right... (I'm sure I just need to put a little more time and energy into it) в Интернете, которые описывают потребление веб-службы с помощью CLR интеграции СЗЛ Server 2005. Для большинства, процесс кажется довольно запутанным. Я столкнулся с несколькими проблемами, включая необходимость изменения уровня доверия моей базы данных, и с помощью инструмента sgen для создания статической сборки XmlSerializer; и я до сих пор не получил его работает право ... (Я уверен, что мне просто нужно положить немного больше времени и энергии в нее)

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

У меня есть свобода выбора, следует ли интегрировать это в сервер S'L в качестве UDF, или он будет отдельной библиотекой .NET для консольных/веб-приложений. Стоит ли беспокоиться о интеграции СЗЛ CLR с внешними сборками?

Ответ на: "Сервер СЗЛ - Использование интеграции CLR для использования веб-службы"

Количество ответов:3

Я думаю, что вы ответили на свой собственный вопрос, я лично считаю, что все, что вызывает WebService больше, чем likley лучше подходит для существования OUTSIDE сервера S'L. Осложнения, повышенные уровни доверия, и, как вы упомянули общий запутанный процесс делает его трудно документировать и трудно поддерживать решение.

Краткий ответ, нет, S'L CLR Интеграция, вероятно, не стоит проблем.

Более длинный ответ имеет несколько моментов, начиная с программирования CLR в базе данных. Это прекрасный инструмент, при правильном использовании, но это увеличивает потребление памяти и может привести к проблемам производительности, если не сделать правильно. Я использую его в своей базе данных для очень специализированных функций, таких как добавление способности RegEx, но он используется экономно, с хорошо проверенным кодом, чтобы предотвратить как можно больше проблем от возникновения.

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

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

Я делал clr процедур, который называет веб-сервисы как на бирже и АД, и я согласен с должности выше. Это работает, но мы быстро столкнулись с проблемами вне памяти из-за особого способа памяти обрабатывается в CLR внутри сервера sql. Как вы можете себе представить производительность в порядке для небольших запросов, но не масштабируется вообще.

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

Используйте CLR для простых текстовых манипуляций и других вычислений, которые не зависят от внешних ресурсов.