Frage

Ich möchte etwas tun:

exec sproc1 and sproc2 at the same time
when they are both finished exec sproc3

Ich kann in dts tun. Gibt es eine Möglichkeit, es in Transact-SQL zu tun? Oder gibt es eine Möglichkeit, es mit einem Batch-Skript (zB vbs oder Powershell) zu tun?

War es hilfreich?

Lösung

sp _ _ startet Job

Ich bin eine ähnliche Sache zur Zeit tun, und der einzige Weg, ich habe zu vermeiden gefunden mit SSIS oder eine äußere Schale ist meine Laderoutine in ‚Threads‘ zu spalten manuell und dann einen einzigen Master sqlagent Job feuern was wiederum führt so viele sp _ _ beginnen Job ist, als ich Threads. Von diesem Punkt, alles, was sie laufen autonom.

Es ist nicht genau das, was wir suchen, aber das Ergebnis ist das gleiche. Wenn Sie den Job-Status für die Unteraufträge testen, können Sie Ihren bedingten Beginn sproc 3 als auch umzusetzen.

Was ist der Punkt in 8 Cores, wenn wir sie nicht alle auf einmal verwenden kann?

Andere Tipps

Sie könnten eine CLR gespeicherte Prozedur, die (unter Verwendung von C #) erzeugen würde rufen Sie die ersten beiden auf ihre eigenen Fäden, und dann, bis beide blockieren, werden komplett ... dann die dritte ausgeführt werden.

Sind Sie in der Lage CLR sprocs in Ihrer Situation zu benutzen? Wenn ja, werde ich diese Antwort bearbeiten, um mehr Details zu haben.

Sie benötigen unbedingt beide SPs parallel ausgeführt werden?

Mit einfachen CRUD-Anweisungen innerhalb eines einzigen SP, habe ich festgestellt SQL S. macht einen sehr guten Job zu bestimmen, welche von ihnen kann parallel betrieben werden und so tun. Ich habe noch nie SQL S. parallel laufen 2 SPs gesehen, wenn beide der Reihe nach von einer T-SQL-Anweisung aufgerufen werden, nicht einmal wissen, ob es überhaupt möglich ist.

Nun, Sie die DTS wirklich sie parallel ausführen? Es könnte sein, es einfach führt sie der Reihe nach, ruft dann die dritte SP nach den letzten Ausführungen erfolgreich.

Wenn es wirklich sie parallel läuft, wahrscheinlich sollten Sie mit DTS-Stick, aber dann würde Ich mag wissen, was es tut, wenn ich ein DTS-Paket Anruf haben, sagen wir, 10 schwere SPs parallel ... ich kann müssen einige Prüfungen tun erfahren, dass ich: D

Sie können SSIS verwenden. Die Vorteile davon sind, dass das Paket dort in dem SQL Server und einfach geplant gespeichert werden.

Von Powershell oder gerade über jede externe Skriptsprache, können Sie die SQL-Befehlszeile osql oder sqlcmd verwenden. Diese Technik kann auch auch durch Beschuss aus mit xp_cmdshell verwendet wird, auf dem SQL Server zu planen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top