SQL CLR-Webdienstaufruf: Begrenzung des Overheads

Ich versuche die Abfrageleistung für eine Anwendung zu verbessern und bin logischerweise hängen geblieben.

So ist die Anwendung proprietär und daher können wir den anwendungsseitigen Code nicht ändern. Wir haben jedoch die Erlaubnis erhalten, mit der zugrunde liegenden Datenbank zu arbeiten (überraschenderweise). Die Anwendung ruft eine SQL Server-Datenbank auf. Daher besteht die aktuelle Idee darin, eine Ansicht mit demselben Namen wie die Tabelle zu erstellen und die zugrunde liegende Tabelle umzubenennen. Wenn die Anwendung auf die Ansicht zugreift, ruft die Ansicht eine von zwei SQL CLR-Funktionen auf, die beide nur einen von uns zusammengestellten Webdienst aufrufen. Der Webdienst führt die gesamte Logik aus und enthält einen API-Aufruf an eine externe, proprietäre API, die eine zusätzliche Logik ausführt und dann das Ergebnis zurückgibt.

Dies funktioniert, es treten jedoch schwerwiegende Leistungsprobleme beim Skalieren auf große Datenmengen (über 100.000 Zeilen) auf. Die ziemlich eindeutige Ursache hierfür ist die Tatsache, dass wir mit dem Web-Service, der den API-Aufruf enthält, zeilenweise arbeiten müssen, was zu einem hohen Latenzaufwand führt.

Die naheliegende Lösung besteht darin, eine Möglichkeit zu finden, um die Häufigkeit zu begrenzen, mit der der Webdienst pro Abfrage aufgerufen werden muss. Hier stecke ich jedoch fest. Ich habe ein paar verschiedene Methoden für den Umgang mit solchen Szenarien gelesen, aber als Anfänger in der Datenbank habe ich Schwierigkeiten zu verstehen, was in dieser Situation angemessen wär

Wenn es Ideen / Empfehlungen gibt, wäre ich sehr dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage