2008-10-07 7 views
8

Es gibt ein paar tutorials im Web, die den Verzehr eines Webdienstes mithilfe der CLR-Integration von SQL Server 2005 beschreiben. Am meisten scheint der Prozess ziemlich kompliziert zu sein. Ich habe verschiedene Probleme festgestellt, darunter die Notwendigkeit, die Vertrauensstufe meiner Datenbank zu ändern, und das sgen-Tool zum Erstellen einer statischen XmlSerializer-Assembly verwenden. und ich habe immer noch nicht funktioniert es richtig ... (Ich bin mir sicher, ich muss nur ein wenig mehr Zeit und Energie hinein)SQL Server - Verwenden der CLR-Integration zum Verwenden eines Webdiensts

Was sind die Auswirkungen auf Sicherheit, Leistung und Wartung, wenn Sie dies zu gehen Art der Architektur? Dies wäre wahrscheinlich ein ziemlich stark genutzter Prozess, und die Wartungsfreundlichkeit ist relativ wichtig.

Ich habe die Freiheit zu wählen, ob dies in SQL Server als UDF integriert werden soll oder ob es eine eigenständige .NET-Bibliothek für Konsolen/Web-Anwendungen sein soll. Ist die SQL CLR-Integration mit externen Assemblies die Mühe wert?

Antwort

3

Ich denke, Sie haben Ihre eigene Frage beantwortet, ich persönlich finde, dass alles, was einen WebService anruft, mehr als nur besser geeignet ist, um außerhalb von SQL Server zu existieren. Die Komplikationen, das erhöhte Vertrauen und, wie Sie erwähnt haben, der gesamte komplizierte Prozess macht es zu einer schwer zu dokumentierenden und schwer zu wartenden Lösung.

4

Die kurze Antwort ist, nein, SQL CLR Integration ist wahrscheinlich nicht die Mühe wert.

Die längere Antwort hat mehrere Punkte, beginnend mit der Programmierung CLR in der Datenbank. Es ist ein gutes Werkzeug, wenn es richtig verwendet wird, aber es erhöht den Speicherverbrauch und kann zu Leistungsproblemen führen, wenn es nicht korrekt ausgeführt wird. Ich benutze es in meiner Datenbank für sehr spezielle Funktionen, wie das Hinzufügen der RegEx-Fähigkeit, aber es wird sparsam verwendet, mit gut getestetem Code, um zu verhindern, dass so viele Probleme wie möglich auftauchen.

Eine zweite ist, wie Sie gesagt haben, müssen Sie die Sicherheit ändern, mögliche Risiken zu öffnen.

Verwenden Sie eine eigenständige Anwendung, um die Daten in Ihren Server zu laden. Sie haben mehr Kontrolle, weniger Risiko und viel leichter Zeit.

2

Ich habe Clr-Verfahren gemacht, die Webdienste sowohl auf Exchange als auch auf AD aufrufen, und ich stimme den obigen Posts zu. Es funktioniert, aber wir haben schnell wegen der besonderen Art und Weise, wie Speicher in CLR innerhalb von SQL Server gehandhabt wird, Probleme mit unzureichendem Arbeitsspeicher bekommen. Wie Sie sich vorstellen können, ist die Leistung für kleine Abfragen in Ordnung, skaliert aber überhaupt nicht.

Im Allgemeinen bestimmt die Leistung Ihrer Datenbank die Leistung Ihrer Anwendung und ich denke, diese Logik in Ihre Datenbank zu setzen ist ein Nein, wenn Sie nicht die vollständige Kontrolle darüber haben, was Sie tun.

Verwenden Sie CLR für einfache Textmanipulationen und andere Berechnungen, die nicht von externen Ressourcen abhängig sind.

Verwandte Themen