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
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