2016-10-25 3 views
0

Ich habe eine Webanwendung für Einzelhandelsunternehmen. Viele Berechnungen & Einfügungen erfolgen in gespeicherten Prozeduren, aufgrund derer die Anwendung belastet wird. Einige gespeicherte Prozeduren werden für 5 Stunden ausgeführt.Wie Zwischenspeichern von Webdaten in Asp.Net C# mit MSSQL?

Ich kam mit einer Caching-Lösung. Ich habe SQL-Tabellen erstellt, in denen ich Daten nach der Ausführung der gespeicherten Prozedur einfüge. Also prüft das System, ob Daten in meinen neuen Tabellen vorhanden sind, es ruft von dort die gespeicherte Prozedur ab.

Um es zu automatisieren, machten wir einen Windows-Dienst, wo wir 11 gespeicherte Prozeduren parallel ausführen konnten. Aber irgendwie bleibt der Prozess dazwischen hängen. Nur 6 SPs laufen, während die anderen 5 nicht.

Teste ich die richtige Lösung? Kann jemand eine bessere Lösung vorschlagen oder meinen Fluss optimieren?

+0

Wenn Sie ein Datenbankleistungsproblem haben, empfehle ich, dass Sie das tun, anstatt Ihre eigene Cache-Lösung zu erstellen. SQL Server verfügt bereits über einen Cache. Aber wenn es nicht genug Speicher hat, kann es es nicht benutzen. Leider gibt es in deinem Post nicht wirklich Informationen. Sie müssen Protokolle überprüfen und einige weitere Details hinzufügen –

+0

Zum Beispiel können Sie dies verwenden, um die langsamste Abfrage zu finden, dann tunen Sie das - überprüfen Sie den Abfrageplan und fügen Sie Indizes usw. hinzu. Http://stackoverflow.com/questions/820219/how- zu finden-langsamste-Abfragen –

Antwort

0

Hier meine Vorschläge sind:

  1. Konzentrieren Sie sich auf die gespeicherte Prozedur
  2. prüfen Datenbankindizes
  3. SSIS ist eine weitere Optionen zu optimieren (Sie können es anstelle von Windows-Dienste verwenden)

Wenn Sie alle gespeicherten Prozeduren parallel ausführen können, können Sie die gespeicherten Prozeduren in SSIS planen. Vielleicht wird es helfen.

Verwandte Themen