SQL Abfrage parallelisieren

Gawan

Grünschnabel
Hallo,

folgende Situation:
Ich habe eine Xeon CPU mit 4 Kernen und 8 Threads.
Darauf läuft ein SQL Server 2005 Developers Edition der auf 8 Prozessoren konfiguriert ist.

Ich habe 8 SQL-Statements die mir 8 unabhängige Summen aus der gleichen Tabelle berechnen (eine Kennmzahl pro Jahr).
Jedes Statement läuft ca. 10 Minuten.

Ich führe diese 8 Statements derzeit in einer StoredProcedure aus. Der Compiler setzt sie dabei sequentiel hintereinander --> Laufzeit von 80 Minuten, es wird nur EINE der 8 verfügbaren CPUs genutzt (die dafür zu 100% ausgelastet)

Wenn ich die 8 Statements in 8 unabhängige Queries zerteile und händisch zeitgleich starte, dann laufen die 8 Queries parallel auf 8 Prozessoren (alle 8 auf 100%) und die Laufzeit beträgt in Summe ca. 12 Minuten.

Wie bringe ich den SQL Compiler dazu diese 8 Befehle ebenfalls parallel auszuführen ?
Ich verstehe nicht warum der das nicht sowieso von selbst macht :(

Danke im Voraus
Gawan
 
Ich vermute mal schwer das dies nicht möglich ist. Allerdings ist es schon seltsam das der SQL - Server die einzelnen Abfragen für sich nicht parallelisiert hierzu solltest du mal die Maxdop Einstellungen des Servers prüfen.
Bezüglich parallelisierter Abfragen würde ich Dir mal diesen Webcast empfehlen.
http://webcasts4.sqlworkshops.com/webcasts.asp
Gerade im 2. Webcast geht er stark auf parallelisierung ein.
Der Inder ist nicht nur lustig - der hat auch richtig was drauf ;-)

LG

BB
 
Zurück