Хоча це значення зберігається як частина кроку завдання, я не можу знайти жодних доказів того, що значення використовується.
Якщо я встановив значення, додавши параметр , @os_run_priority = X
до EXEC msdb.dbo.sp_update_jobstep
, він відображається правильно у os_run_priority
стовпці msdb.dbo.sysjobsteps
.
Я створив завдання з 2 кроків: один крок T-SQL та один крок Операційної системи (CmdExec). Я припускаю, що більш імовірно, що такий варіант, як "пріоритет запуску ОС", вплине на крок CmdExec, але добре перевірити обидва.
Кожен крок робив WAITFOR DELAY '00:00:30.000'
так, щоб він зависав, поки я переглядав запущені процеси, щоб побачити, чи змінився пріоритет.
Я перевірив процеси за допомогою Провідника процесів . Наскільки я можу сказати, що значення (і я спробував 1
, 15
і -1
) не мають ніякого ефекту. Я спробував використовувати як SQL Server 2012, так і 2016 в Windows 10.
Я також спробував на SQL Server 2008 R2, що працює на Windows XP. Я знову не бачив жодних ознак цього властивості, що впливає ні на процес SQLAGENT, ні на процес SQLCMD (який я використовував у кроці CmdExec, щоб передзвонити в SQL Server, щоб зробити це WAITFOR DELAY
).
Звичайно, слід зазначити, що сам процес потребує певних дозволів для того, щоб змінити рівень пріоритетності потоку. Коли агент SQL Server працює як обліковий запис локальної системи, він може не мати таких прав. Однак я тестував (лише для SQL Server 2016), використовуючи власний Вхід для Windows як обліковий запис служби агента SQL Server, і не бачив ознак використання цього властивості.