SQL Server - Verwenden von CLR-integration zu konsumieren eines Web Service
Gibt es ein paar tutorials auf die web beschreiben, dass das konsumieren eines Web Service mit Hilfe von SQL Server 2005 ist die CLR-integration. Für die meisten, der Prozess scheint ziemlich verworren. Ich habe laufen in mehrere Probleme, einschließlich die Notwendigkeit, änderungen an meiner Datenbank, das Vertrauen der Ebene, und mit der sgen Werkzeug zum erstellen einer statischen XmlSerializer-assembly; und ich noch nicht dazu gekommen es richtig funktioniert... (ich bin sicher, ich muss nur ein wenig mehr Zeit und Energie in es)
Welche die Sicherheit, Leistung und Wartung Folgen, wenn man zu dieser Art von Architektur? Dies würde wahrscheinlich eine ziemlich stark befahrene Prozess, und einfache Wartung ist relativ wichtig.
Ich habe die Freiheit zu wählen, ob die Integration dieser in den SQL-Server als UDF, oder ein stand allein .NET-Bibliothek für Konsole/Web-Anwendungen. Ist die SQL-CLR-integration mit externen Baugruppen der Mühe Wert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die kurze Antwort ist, Nein, SQL-CLR-Integration ist wahrscheinlich nicht der Mühe Wert.
Die längere Antwort hat mehrere Punkte, beginnend mit Programmieren von CLR in der Datenbank. Es ist ein feines Werkzeug, wenn verwendet, richtig, aber es erhöht zwar den Speicherverbrauch und kann zu Leistungsproblemen führen, wenn nicht richtig gemacht. Ich benutze es in meine Datenbank für sehr spezielle Funktionen, wie das hinzufügen von RegEx-Fähigkeit, aber es ist sparsam eingesetzt, mit gut getesteten code zu verhindern, so viele Fragen wie möglich aus tauchten.
Zweite ist, wie gesagt, du hast zum ändern der Sicherheitseinstellungen, die öffnung der potenziellen Risiken.
Verwenden Sie einen stand-alone-Anwendung, laden Sie die Daten in Ihrem server. Sie haben mehr Kontrolle, weniger Risiko und eine viel einfachere Zeit davon.
Ich denke, Sie haben Ihre eigene Frage beantwortet, ich persönlich finde, dass alles, was den Aufruf einer WebService ist mehr als likley besser geeignet, um zu existieren, AUßERHALB von SQL Server. Die Komplikationen, erhöhten das Vertrauen, und wie Sie schon erwähnten, insgesamt komplizierte Prozess macht es einem schwer, zu dokumentieren und schwer zu pflegen-Lösung.
Ich habe das getan, clr-Prozeduren, die Aufrufe von webservices sowohl auf Exchange-und AD-und da Stimme ich den posts oben. Es funktioniert, aber schnell liefen wir in out-of-memory-Probleme, die durch die spezielle Art von Speicher erfolgt in der CLR in sql server. Wie Sie sich vorstellen können die Leistung ist ok für kleine Abfragen, aber nicht Maßstab an alle.
In der Regel Ihre Datenbank Leistung bestimmt die Leistung Ihrer Anwendung, und ich denke, dass die Inbetriebnahme dieser Logik in Ihre Datenbank ein no-no, wenn Sie nicht über die vollständige Kontrolle über das, was Sie tun.
Verwenden Sie CLR-für einfache text-Manipulationen und andere Berechnungen, hängt nicht von externen Ressourcen.