Ich kodiere, um XML-Dateien zu lesen, um die Datenbank zu aktualisieren. Ich bekomme ungefähr 500 XML-Dateien und möchte sie so schnell wie möglich verarbeiten.Ist es möglich, viele gespeicherte Prozeduren in einem einzigen Vorgang auszuführen?
Alle Datenbankoperationen werden mit gespeicherten Prozeduren ausgeführt.
Es gibt ungefähr 35 verschiedene gespeicherte Prozeduren, die für jede XML-Datei aufgerufen werden.
Am Anfang hatte ich den Code wie diese
var cmd = new SqlCommand("EXEC UpdateTeamStats("+teamId+","+points+")");
cmd.CommandType = CommandType.Text;
geschrieben, aber nachdem sie durch einige Best Practices gehen Habe ich es zu
var cmd = new SqlCommand("UpdateTeamStats");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("teamId", 21);
cmd.Parameters.Add("points", 2);
wegen der hohen Anzahl von gespeicherten Prozeduren aus dem Programm aufgerufen wurde Ich erkannte, dass ich weniger Anrufe tätigen muss, um zu optimieren.
Also ich möchte alle 35 gespeicherten Prozeduren zusammen sammeln und sie in einem Rutsch ausführen.
Die gespeicherten Prozeduren sind unterschiedlich mit verschiedenen Parametern und ich kenne keine Möglichkeit, sie zu sammeln und nach den oben beschriebenen Parameteränderungen zusammen auszuführen.
Ich dachte daran, eine riesige gespeicherte Prozedur und innerhalb dieser gespeicherten Prozedur die anderen 35 aufrufen, aber ich bin nicht sehr gut in SQL und es wird zu unnötiger Komplexität führen.
Ist es möglich, dies vollständig in C# zu tun?
Oder gibt es eine andere bessere Methode die StoredProcedures Schlange zu stehen und laufen sie schnell
Was Sie tun erwarten Sie, dass mitten in der Ausführung ein Fehler aufgetreten ist? Werden alle ausgeführten Prozeduren zurückgesetzt? Oder einfach die restlichen Prozeduren weiter bearbeiten? –
Beachten Sie, dass Ihr Titel "parallel" sagt, aber wenn Sie Ihre Frage lesen, sieht es so aus, als ob Sie nur "als einen Datenbankbefehl" meinen. –
@GeorgeDuckett - Das war meine Bearbeitung. Das Original war "auf einmal". – Oded