Sementara nilai ini disimpan sebagai bagian dari langkah pekerjaan, saya tidak dapat menemukan bukti bahwa nilai tersebut digunakan.
Jika saya menetapkan nilai dengan menambahkan parameter , @os_run_priority = X
ke EXEC msdb.dbo.sp_update_jobstep
, maka itu muncul dengan benar di os_run_priority
kolom msdb.dbo.sysjobsteps
.
Saya menciptakan pekerjaan dengan 2 langkah: satu langkah T-SQL dan satu langkah Sistem Operasi (CmdExec). Saya berasumsi bahwa lebih mungkin bahwa opsi seperti "os run priority" akan memengaruhi langkah CmdExec, tetapi baik untuk menguji keduanya.
Setiap langkah melakukan WAITFOR DELAY '00:00:30.000'
sehingga akan menggantung sementara saya melihat proses yang berjalan untuk melihat apakah prioritas telah berubah.
Saya memeriksa proses menggunakan Process Explorer . Sejauh yang saya tahu, nilai-nilai (dan saya mencoba 1
, 15
dan -1
) tidak berpengaruh. Saya mencoba menggunakan SQL Server 2012 dan 2016 pada Windows 10.
Saya juga mencoba SQL Server 2008 R2 yang berjalan di Windows XP. Saya lagi melihat tidak ada indikasi properti ini memiliki efek pada proses SQLAGENT atau proses SQLCMD (yang saya gunakan pada langkah CmdExec untuk memanggil kembali ke SQL Server untuk melakukan WAITFOR DELAY
).
Tentu saja, perlu dicatat bahwa proses itu sendiri membutuhkan izin tertentu untuk mengubah tingkat prioritas utas. Ketika agen SQL Server berjalan sebagai akun Sistem Lokal, mungkin tidak memiliki hak seperti itu. Namun, saya melakukan tes (hanya SQL Server 2016) menggunakan Windows Login saya sendiri sebagai akun layanan untuk agen SQL Server, dan tidak melihat indikasi properti ini sedang digunakan.