Czasem może się zdarzyć systuacja, że uruchamia się jednocześnie kilka jobów w SQL Server Agent. Zamiast oczywistego skrócenia czasu wykonania charakterystycznego dla pracy równoległej
mamy wydłużenie tego czasu. Spowodowane jest to tym, że część jobów została uruchomiona a pozostałe czekają na zakończenie pracy tych pierwszych.
Odpowiedzialny jest za to parametr związany z ustawieniem ilości wątków wykonywanych jednocześnie (Max Worker Threads).
Dla MS SQL Server 2000 domyślna ilość wątków wynosi 255.
Dla MS SQL Server 2005/2008/2008R2 domyślna ilość wątków wynosi 0.
Zmiana z poziomu kodu (dla wszystkich wersji):
sp_configure 'show advanced options', 1
go
reconfigure with override;
go
sp_configure 'max worker threads', 500 -- ilosc watkow 500
go
reconfigure with override;
go
sp_configure 'show advanced options', 0
go
Po wykonaniu kodu należy zrestartować usługę agenta.
Zmiana poziomu SSMS
Klikamy ppm na nazwie serwera. Wybieramy z menu podręcznego properties. W lewym oknie "Select a page" wybieramy Procesors.
Tam w części Threads ustawiamy wartość Maximum Worker Threads.
Patrz:
How to determine proper SQL Server configuration settings
Max worker threads Option