उच्च PAGELATCH_ * और WRITELOG प्रतीक्षा करता है। क्या वे संबंधित हैं?


11

हम बहुत उच्च PAGELATCH_EX और PAGELATCH_SH प्रतीक्षा प्रकार के साथ उच्च WRITELOG प्रतीक्षा कर रहे हैं। मैंने PAGELATCH प्रतीक्षा के कारण क्वेरी का निदान किया है और IDENTITY मान के साथ परिभाषित व्यस्त संकुल प्राथमिक कुंजी में प्रविष्टि दर को कम करके उन्हें समाप्त कर सकता है। मैं समझता हूं कि इस घटना को अंतिम पृष्ठ सम्मिलित कुंडी विवाद के रूप में जाना जाता है।

हालाँकि, मेरा सवाल यह है कि जब एक नया रिकॉर्ड डाला जाता है, तो SQL सर्वर एक बफर पेज पर एक अनन्य PAGELATCH_EX लेता है, रिकॉर्ड को बफर पेज पर डालता है, लेनदेन लॉग को रिकॉर्ड लिखता है और फिर विस्तृत PAGELATCH_EX को विस्तृत https: // पर जारी करता है। www.microsoft.com/en-ie/download/details.aspx?id=26665 पृष्ठ 24. या क्या यह PAGELATCH_EX को विस्तृत रूप से विस्तृत करने से पहले लेनदेन लॉग में रिकॉर्ड लिखता है "अत्यधिक समवर्ती" PAGELATCH Contention को हल करना "INSERT वर्कलोड - पृष्ठभूमि की जानकारी SQLCAT की गाइड: रिलेशनल इंजन

यदि रिकॉर्ड को लैचिंग तंत्र के बाहर लॉग करने के लिए लिखा गया है, तो मैं उच्च पैगलेट इंतजार के कारण के रूप में धीमी गति से लिख सकता हूं। लेकिन अगर कुंडी को तब तक रखा जाता है जब तक कि रिकॉर्ड को लॉग करने के लिए कठोर नहीं किया जाता है, तो मुझे शायद WRITELOG को ध्यान में रखना चाहिए।

कई गैर-संकुलित अनुक्रमित होने के कारण PAGELATCH_ * कुंडी अधिक समय तक आयोजित की जाएगी अर्थात यदि किसी तालिका में क्लस्टर है और एकाधिक गैर-क्लस्टर अनुक्रमणिका को लेटेस जोड़ा जाता है और अनुक्रमणिका के प्रत्येक पृष्ठ पर समवर्ती रूप से जारी किए जाते हैं?

अपडेट 1 कन्फियो-एसक्यूएल-सर्वर-रिटेलॉग-वेट स्लाइड दो और सामान्य वाल आर्किटेक्चर पढ़ने के बाद । मुझे अब यह समझ में आ रहा है कि "एक लॉग प्रविष्टि दर्ज करें जिसे पंक्ति को संशोधित किया गया है" दोनों श्वेत पत्रों में विस्तृत कदम SQL सर्वर से लेन-देन लॉग कैश में परिवर्तन का उल्लेख है, डिस्क का नहीं। एक बार लेन-देन पूरा हो जाने पर या पूरा रिकॉर्ड बफर करने के बाद तुरंत डिस्क पर फ्लश कर दिया जाता है।


1
इस क्षण के समान ही एक मुद्दे को
डेव लॉरेंस

क्या आपने संभवतः उच्च वीएलएफ में समस्याओं का कारण देखा है?
परिजन शाह

@ क्या आप एक धीमी लॉग फ्लश के संदर्भ में एक PAGELATCH_EX कुंडी खोलने और कुंडी विवाद का कारण बनता है?
Pixelated

SQL सर्वर को लागू करने का कोई कारण नहीं है, पृष्ठ लॉच के तहत लॉग रिकॉर्ड उत्पन्न करना चाहिए। वे इसे इस तरह क्यों करेंगे? अकल्पनीय। इसके अलावा, अगर लॉग राइट्स पैचलेच के तहत किए जाते हैं तो आप बहुत कम कभी नहीं देख पाएंगे। एक समय में केवल एक प्रतीक्षा प्रकार लिया जा सकता है।
यूएसआर

जवाबों:


1

हालाँकि मेरा सवाल यह है कि जब एक नया रिकॉर्ड डाला जाता है, तो क्या SQL सर्वर एक बफर पेज पर एक विशेष PAGELATCH_EX लेता है, रिकॉर्ड को बफर पेज पर डालता है, लेनदेन लॉग को रिकॉर्ड लिखता है और फिर अनन्य PAGELATCH_EX को जारी करता है।

आपको ध्यान देना चाहिए कि कुंडी केवल पृष्ठ की भौतिक अखंडता की रक्षा करती है जबकि यह स्मृति में होती है, इसलिए जब पृष्ठ स्मृति में होता है तो कुंडी लग जाती है। मान लीजिए कि एक रिकॉर्ड डाला जा रहा है और उसके लिए पेज लाने की जरूरत है। सबसे पहले, पेज को लॉक किया जाएगा और मेमोरी में लाया जाएगा, फिर इसे लैच किया जाएगा और जानकारी लिखी जाएगी। इसके बाद की प्रक्रिया होगी

  • लॉग रिकॉर्ड जनरेट करें

  • लॉग रिकॉर्ड के मिलान के लिए पृष्ठ LSN अपडेट करें

  • डेटा बदलें (पृष्ठ को गंदा करें)

  • रिलीज कुंडी

  • प्रतिबद्ध लेनदेन शुरू

  • FlushToLSN की प्रतिबद्धता

  • रिलीज ताले

  • प्रतिबद्ध लेन-देन पूरा

उपरोक्त चरणों के बारे में अधिक जानकारी और स्पष्टीकरण के लिए कृपया बॉब डोर के I / O प्रस्तुति ब्लॉग को पढ़ें

पैगेलैच * वेट्स नॉन आई / ओ वेट्स हैं और मैंने देखा है कि ज्यादातर समय ये इंतजार आवंटन विवाद के कारण प्रमुख होते हैं। मेरा कूबड़ यह है कि यह कैसे के साथ कुछ करना है tempdb is configured। तो आपका tempdb कैसे कॉन्फ़िगर किया गया है ?, कितनी tempdb डेटा फ़ाइलें मौजूद हैं? सुनिश्चित करें कि उनके पास एक ही ऑटोग्रॉथ और समान आकार है। जब नए पेज को सिस्टम पेज जैसे GAM, SGAM और PFS पेज बनाया जाता है तो उसे अपडेट या एक्सेस करना पड़ता है और जब SQL सर्वर को इन पेजों को एक्सेस करने में कंटेस्टेंट का पता चलता है तो इस तरह का इंतजार तस्वीर में आ जाता है।


हाय @ शैंकी, sysinos_os_waiting_tasks.resource_description के आधार पर DBCC पेज और PAGELATCH_ के प्रकार के साथ युग्मित * मैंने tempDB को खारिज कर दिया है। बॉब डोर द्वारा घटनाओं की श्रृंखला के आधार पर ऐसा लगता है कि "जनरेट लॉग रिकॉर्ड" चरण लैचिंग तंत्र के भीतर पूरा हो गया है?
Pixelated

3
दोनों पारस्परिक रूप से अनन्य घटनाएँ हैं लॉग फ़ाइल में लिखने का इसके लेन
Shanky
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.