Bu değer iş adımının bir parçası olarak kaydedilirken, değerin kullanıldığına dair hiçbir kanıt bulamıyorum.
I parametresini ekleyerek değeri ise , @os_run_priority = X
için EXEC msdb.dbo.sp_update_jobstep
, o zaman doğru bir şekilde göstermektedir os_run_priority
, sütun msdb.dbo.sysjobsteps
.
Bir T-SQL adımı ve bir İşletim Sistemi (CmdExec) adımı: 2 adımda bir iş yarattım. Ben "os çalışma önceliği" gibi bir seçenek bir CmdExec adım etkilemek daha olası olduğunu, ancak her ikisini de test etmek iyi olduğunu varsayalım.
Her adım WAITFOR DELAY '00:00:30.000'
, önceliğin değişip değişmediğini görmek için çalışan süreçlere bakarken takılmak için bir adım attı .
Process Explorer'ı kullanarak işlemleri kontrol ettim . Bildiğim kadarıyla söyleyebilirim, değerleri (ve denedim 1
, 15
ve -1
) hiçbir etkisi yoktur. Windows 10'da SQL Server 2012 ve 2016'yı kullanmayı denedim.
Windows XP'de çalışan SQL Server 2008 R2'yi de denedim. Yine bu özellik SQLAGENT işlemi veya SQLCMD işlemi (ki CmdExec adımda yapmak için SQL Server içine geri çağırmak için kullanıyordu) üzerinde herhangi bir etkisi olan hiçbir belirti gördüm WAITFOR DELAY
.
Elbette, bir iş parçacığının öncelik düzeyini değiştirmek için sürecin kendisinin belirli izinlere ihtiyacı olduğu unutulmamalıdır. SQL Server aracısı Yerel Sistem hesabı olarak çalışırken, bu tür haklara sahip olmayabilir. Ancak, SQL Server aracısı için hizmet hesabı olarak kendi Windows Oturumumu kullanarak test (yalnızca SQL Server 2016) yaptım ve bu özelliğin kullanıldığına dair hiçbir belirti görmedim.