6

मैं एक संग्रहीत प्रक्रिया है कि एक SQL सर्वर 2012 की रिपोर्ट है कि एक अवरुद्ध सत्र lck_m_sएसक्यूएल सर्वर LCK_M_S केवल उत्पादन में होता है

संग्रहीत प्रक्रिया रन की वजह से विकास की तुलना में उत्पादन में चलाने के लिए एक उम्र ले जा रहा है द्वारा कहा जाता है तुरंत SQL सर्वर प्रबंधन स्टूडियो में निष्पादित होने पर और विजुअल स्टूडियो के माध्यम से एक dev लैपटॉप से ​​रिपोर्ट के हिस्से के रूप में बुलाए जाने पर भी अच्छी तरह से काम करता है।

जब उत्पादन सर्वर पर रिपोर्ट अपलोड की जाती है तो यह अवरोधन समस्या प्रकट होती है।

उत्पादन में होने पर lck_m_s समस्या का कारण क्या हो सकता है?

उत्तर

10

इस क्वेरी निष्पादित जब समस्या फिर से होता है:

select * from 
sys.dm_os_waiting_tasks t 
inner join sys.dm_exec_connections c on c.session_id = t.blocking_session_id 
cross apply sys.dm_exec_sql_text(c.most_recent_sql_handle) as h1 

यह आप सत्र कि अवरुद्ध वजह से, जिस पर संसाधन ब्लॉक किया गया था की spid उस सत्र के लिए सबसे rcent क्वेरी का पाठ दे देंगे, और। यह आपको एक ठोस प्रारंभिक बिंदु देना चाहिए।

0

आप विकल्पों

  1. अवरुद्ध प्रक्रिया रिपोर्ट सेट अप की एक जोड़ी है। अनिवार्य रूप से, आप blocked process threshold (s) सिस्टम कॉन्फ़िगरेशन को सेकंड की गैर-शून्य संख्या में सेट करते हैं और BLOCKED_PROCESS_REPORT ईवेंट पर इवेंट अधिसूचना सेट करते हैं। प्रत्येक बार जब भी आपके द्वारा सेट की गई थ्रेसहोल्ड से अधिक के लिए अवरुद्ध किया जाता है तो आपको एक एक्सएमएल रिपोर्ट मिल जाएगी। इसका नकारात्मक पक्ष यह है कि यह आपकी प्रक्रिया के न केवल अवरुद्ध होने के लिए होगा, लेकिन आप जो भी रिपोर्ट में गैर-संगत लॉक धारण कर रहे हैं उसे प्राप्त करेंगे।

  2. lock_released ईवेंट को कैप्चर करने के लिए अपनी प्रक्रिया के लिए एक विस्तारित ईवेंट सत्र सेट करें जहां अवधि प्रतीक्षा करने की अपेक्षा से अधिक लंबी है। उलझन यह है कि यह बेहद लक्षित है और आप सत्र को परिभाषित कर सकते हैं ताकि आपको बहुत कम शोर मिले। नकारात्मकता यह है कि आपको पता नहीं चलेगा कि कौन सी प्रक्रिया असंगत ताला रख रही है (हालांकि आपको लॉक संसाधन आपकी जांच को आगे बढ़ाने के बारे में एक विस्तृत विस्तृत विवरण प्राप्त होगा)।

संबंधित मुद्दे