हालांकि यह मान नौकरी चरण के हिस्से के रूप में सहेजा गया है, मुझे कोई सबूत नहीं मिल सकता है कि मूल्य का उपयोग किया जाता है।
यदि मैं पैरामीटर , @os_run_priority = X
को जोड़कर मान सेट करता हूं EXEC msdb.dbo.sp_update_jobstep
, तो यह os_run_priority
कॉलम के कॉलम में सही तरीके से दिखाई देता है msdb.dbo.sysjobsteps
।
मैंने 2 चरणों के साथ एक नौकरी बनाई: एक टी-एसक्यूएल स्टेप और एक ऑपरेटिंग सिस्टम (CmdExec) स्टेप। मुझे लगता है कि यह अधिक संभावना है कि "ओएस रन प्राथमिकता" जैसे विकल्प CmdExec कदम को प्रभावित करेगा, लेकिन दोनों का परीक्षण करना अच्छा है।
प्रत्येक चरण ने WAITFOR DELAY '00:00:30.000'
ऐसा किया कि जब मैं प्राथमिकता बदल गया था, तो यह देखने के लिए कि मैं चल रही प्रक्रियाओं को देख रहा हूं, यह घूम जाएगा।
मैंने प्रोसेस एक्सप्लोरर का उपयोग करके प्रक्रियाओं की जांच की । जहाँ तक मेरा बता सकते हैं, मानों (और मैंने कोशिश की 1
, 15
और -1
) कोई असर नहीं। मैंने विंडोज 10 पर SQL Server 2012 और 2016 दोनों का उपयोग करने की कोशिश की।
मैंने Windows XP पर चलने वाले SQL Server 2008 R2 पर भी प्रयास किया। मैंने फिर से इस संपत्ति का कोई संकेत नहीं देखा कि SQLAGENT प्रक्रिया या SQLCMD प्रक्रिया (जो मैं CmdExec चरण में उपयोग कर रहा था, वापस करने के लिए SQL सर्वर में कॉल करने के लिए WAITFOR DELAY
) का कोई प्रभाव नहीं है।
बेशक, यह ध्यान दिया जाना चाहिए कि थ्रेड के प्राथमिकता स्तर को बदलने के लिए प्रक्रिया को स्वयं कुछ अनुमतियों की आवश्यकता होती है। जब SQL सर्वर एजेंट स्थानीय सिस्टम खाते के रूप में चल रहा है, तो उसके पास ऐसे अधिकार नहीं हो सकते हैं। हालाँकि, मैंने SQL सर्वर एजेंट के लिए सेवा खाते के रूप में अपने स्वयं के विंडोज लॉगिन का उपयोग करके परीक्षण (SQL सर्वर 2016 केवल) किया, और इस संपत्ति का कोई संकेत नहीं देखा।