ในขณะที่ค่านี้ถูกบันทึกไว้เป็นส่วนหนึ่งของขั้นตอนงานฉันไม่พบหลักฐานที่ใช้ค่า
หากฉันตั้งค่าโดยการเพิ่มพารามิเตอร์, @os_run_priority = X
ไปEXEC msdb.dbo.sp_update_jobstep
แล้วมันจะแสดงขึ้นอย่างถูกต้องในคอลัมน์os_run_priority
msdb.dbo.sysjobsteps
ฉันสร้างงานด้วย 2 ขั้นตอน: หนึ่งขั้นตอน T-SQL และขั้นตอนระบบปฏิบัติการ (CmdExec) ฉันคิดว่าเป็นไปได้ว่าตัวเลือกเช่น "os run priority" จะส่งผลกระทบต่อขั้นตอน CmdExec แต่เป็นการดีที่จะทดสอบทั้งสองอย่าง
แต่ละขั้นตอนทำWAITFOR DELAY '00:00:30.000'
เพื่อที่จะไปรอบ ๆ ในขณะที่ฉันดูกระบวนการทำงานเพื่อดูว่ามีการเปลี่ยนแปลงลำดับความสำคัญ
ฉันจะตรวจสอบกระบวนการใช้Process Explorer เท่าที่ผมสามารถบอกได้ค่า (และฉันพยายาม1
, 15
และ-1
) ไม่มีผลกระทบ ฉันลองใช้ทั้ง SQL Server 2012 และ 2016 บน Windows 10
ฉันยังลองบน SQL Server 2008 R2 ที่ทำงานบน Windows XP ฉันไม่เห็นตัวบ่งชี้ของคุณสมบัตินี้อีกครั้งว่ามีผลกระทบใด ๆ ต่อกระบวนการ SQLAGENT หรือกระบวนการ SQLCMD (ซึ่งฉันใช้ในขั้นตอน CmdExec เพื่อโทรกลับไปยัง SQL Server เพื่อทำเช่นนั้นWAITFOR DELAY
)
แน่นอนว่าควรสังเกตว่ากระบวนการต้องการสิทธิ์บางอย่างเพื่อเปลี่ยนระดับความสำคัญของเธรด เมื่อเอเจนต์ SQL Server ทำงานเป็นบัญชี Local System อาจไม่มีสิทธิ์ดังกล่าว อย่างไรก็ตามฉันได้ทำการทดสอบ (SQL Server 2016 เท่านั้น) โดยใช้การเข้าสู่ระบบ Windows ของฉันเองเป็นบัญชีบริการสำหรับเอเจนต์ SQL Server และไม่เห็นสิ่งบ่งชี้ว่ามีการใช้คุณสมบัตินี้