Verteilen von Ressourcen unter processen – Standorte werden langsam beim Hochladen von csv-fileen auf SQL server

Ich verstehe das ist nicht eine ganz bestimmte Frage, aber immer noch in der Hoffnung, wie es ist etwas, das ich nicht viel Wissen habe.

Wir haben .net Desktop-Anwendung, die als timeplan Service täglich auf dem server läuft Uploads über 80M datasätze aus csv-fileen läuft. dann nachträglich haben wir viele algorithmen, die nach dem upload auf die daten gehen dieser ganze process dauert etwa 7 Stunden.

Als server-Setup haben wir einen dedizierten windowsserver mit SQL server 2008 R2. So haben wir unsere Seite und unsere Anwendung (data uploading) läuft dort. Aber wenn die Anwendung läuft unsere Seite wird langsamer und manchmal un-responsive Ich verstehe völlig den Grund. aber weiß nicht den Ausweg.

Um klarer zu sein, haben wir zwei databaseen. während das Hochladen auf der Baustelle ist die Verwendung der zweiten database .. Nach dem Hochladen von databaseen sind so verschoben, dass die Anwendung die neuesten data verwenden.

In meinem Kopf kann ich mir nachdenken. Nur Gedanken, ich weiß nicht einmal, wenn möglich.

  1. Vielleicht kann es sein wie zwei Maschinen. eine für data-Upload und eine für Serving-Sites. aber irgendwie können beide den gleichen SQL server verwenden. Ich hoffe mit dieser Art von Struktur, Ressourcen, die von der Desktop-Anwendung verwendet werden würde nicht verlangsamen die Website, wie es seine eigenen Ressourcen zu verwenden hat

2.) Vielleicht kann ich die CPU / memory beschränken, die von der Anwendung verwendet werden kann.

Hinweis: Wenige der Abfragen werden sehr kompliziert und laufen lang. manchmal bis zu 30 Minuten. Verwenden von IIS als Webserver.

Ich werde versuchen, Ihre 2 Punkte eins nach dem anderen anzusprechen:

Die 2 Maschinen Option

Das könnte eine tragfähige Lösung sein, aber Sie müssten im Auge behalten, dass Sie ein zusätzliches windows und eine zusätzliche SQL server Lizenz benötigen + vielleicht zusätzliche Hardware, ich bin mir nicht sicher, ob das die kostengünstigste Option ist.

Ressourcen beschränken

Das ist auch eine Möglichkeit, wenn Sie SQL server Enterprise Edition haben, schauen Sie in Resource Governor für weitere Informationen, wie man das up up.

SQL server Resource Governor ist ein Feature, als Sie verwenden können, um SQL server Workload und System Ressourcenverbrauch zu verwalten. Resource Governor ermöglicht es Ihnen, Grenzen für die Menge an CPU, physikalischen IO und memory festzulegen, die eingehende Anwendungsanforderungen verwenden können.

Wenn du keine Enterprise-Edition hast, ist keine Option.

Es könnte eine dritte Option geben, die auch bei der Standardausgabe zur Verfügung steht.

Mehrere Fälle

Sie könnten 2 Instanzen von SQL auf demselben Feld installieren und ihnen unterschiedliche memorygrenzen zuordnen.

Wenn IO Ihr Engpass ist, können Sie sich auch für verschiedene data / Log-Laufwerke für jede Instanz entscheiden.