प्रदर्शन के लिए लेनदेन लॉग वीएलएफ कितना महत्वपूर्ण हैं?


12

डेटाबेस प्रदर्शन पर विचार करते समय वीएलएफ कितना महत्वपूर्ण है? वीएलएफ के लिए एक इष्टतम स्थिति का वर्णन क्या होगा?



कूल - मैं इसे प्रदर्शन पर रिपोर्टिंग के लिए सहायक होते हुए देख सकता हूं
the_good_pony

1
: @DBAWaffle का संदर्भ लें एसक्यूएल सर्वर VLFs, भाग 1 के साथ प्रयोग > - ग्लेन बेरी से sqlskills.com/blogs/glenn/...
परिजनों शाह

जवाबों:


17

वर्चुअल लॉग फ़ाइल क्या है?

SQL सर्वर प्रत्येक डेटाबेस के लिए 'वर्चुअल लॉग फाइल' (या शॉर्ट के लिए VLFs) नामक छोटे डेटाबेस में ट्रांजेक्शन लॉग फाइल को विभाजित करता है। उनका प्राथमिक कार्य एक लॉग बैकअप पर छंटनी मार्कर के रूप में है, अर्थात SQL सर्वर केवल स्पष्ट (और पुनः उपयोग के लिए उपलब्ध चिह्न) VLFs जो पूरी तरह से खाली हैं। MSDN के पास Transaction Log - Physical Architecture का एक टुकड़ा है ।

वीएलएफ की संख्या क्या निर्धारित करती है?

हर बार एक लॉग फ़ाइल बढ़ती है (चाहे ऑटोग्रॉथ या मैनुअल ग्रोथ के माध्यम से), लॉग फाइल का नया सेक्शन कई VLFs में विभाजित होता है, विशुद्ध रूप से नए सेक्शन के आकार (मौजूदा ट्रांजैक्शन लॉग को अकेला छोड़ दिया जाता है) पर आधारित होता है। तो, छोटी ऑटोग्रॉथ सेटिंग्स (यानी 10% ऑटोग्रॉथ जो कि डिफ़ॉल्ट है) बड़ी संख्या में वीएलएफ का कारण बनेगी।

बड़ी संख्या में वीएलएफ के निहितार्थ क्या हैं?

प्राथमिक समस्या बड़ी संख्या में वीएलएफ कारण हैं:

  • धीमी रिकवरी (पुनर्प्राप्ति डेटाबेस पुनर्स्थापना के दौरान एक चरण है जहां पूरा लेनदेन डेटा पृष्ठों पर लिखा जाता है और अपूर्ण लेनदेन वापस लुढ़क जाते हैं)।
  • डेटाबेस मिररिंग सेटअप में धीमे लॉग-रीडर का प्रदर्शन।
  • डेटाबेस स्नैपशॉट निर्माण के दौरान धीमी गति से प्रदर्शन (ध्यान दें कि इसमें कुछ कार्य भी शामिल हैं DBCCक्योंकि वे पृष्ठभूमि में डेटाबेस स्नैपशॉट का उपयोग करते हैं ताकि बिना अवरोध के जांच की सुविधा मिल सके)।

मुझे कैसे पता चलेगा कि मेरे डेटाबेस में कितने वीएलएफ हैं?

DBCC LOGINFOआपके डेटाबेस के लेन-देन लॉग में प्रत्येक वीएलएफ के लिए 1 पंक्ति लौटाएगा। इस सवाल में एक सर्वर पर सभी डेटाबेसों को लागू करने के लिए कुछ उपयोगी स्क्रिप्ट हैं।

वीएलएफ कितने हैं?

यह एक निर्णय कॉल है जिसे आपको अपने लिए करना होगा। अंगूठे का मेरा व्यक्तिगत नियम यह है कि 50 से कम के साथ खिलवाड़ करने के लायक नहीं है, और 100 से अधिक (या तो) और मैं ऑटोग्रॉथ सेटिंग्स को ठीक करता हूं और (अगले रखरखाव विंडो में) लॉग को नीचे (और नीचे के रूप में) को नोट करने के लिए एक मानसिक नोट करता हूं ।

मदद! मेरे पास ग्यारह अरब वीएलएफ है और मेरा डेटाबेस रिकवरी पूरे दिन लेता है!

लघु रूपरेखा ( किम्बर्ली ट्रिप के ब्लॉग से ):

  • सुनिश्चित करें कि आप डेटाबेस में सक्रिय एकमात्र कनेक्शन हैं (इसलिए, रखरखाव विंडो के दौरान ऐसा करें)
  • लेन-देन लॉग बैकअप डिस्क पर (उपयोग करके BACKUP LOG)
  • भागो DBCC SHRINKFILEके साथ TRUNCATEONLYसबसे छोटा आकार संभव करने के लिए लॉग फ़ाइल हटना।
  • ALTER DATABASE [...] MODIFY FILE [...] SIZE=newsizeएक ही चरण में अपने लेनदेन लॉग का आकार बदलने के लिए चलाएं **।

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


धन्यवाद, क्या आपको लगता है कि कई वीएलएफ अधिक स्पष्ट रूप से उच्च ओएलटीपी वातावरण में प्रदर्शन में बाधा डालेंगे जहां डेटा को नियमित रूप से बदला जा रहा है, बड़ी संख्या में आवागमन के लिए?
the_good_pony

वीएलएफ की बड़ी संख्या केवल उन स्थितियों में उल्लेखनीय है जिन्हें मैंने ऊपर उल्लिखित किया है (वसूली, स्नैपशॉट, मिररिंग)। वे ओएलटीपी वातावरण में प्रदर्शन में थोड़ी बाधा डाल सकते हैं, लेकिन केवल इतना ही।
साइमन रिगार्ट्स

1
मेरे लिए, 20+ घंटे की वसूली ने मुझे कम (उप 1,000) वीएलएफ गणना बनाए रखने के महत्व के बारे में आश्वस्त किया था।
मैक्स वर्नोन

@SimonRigharts मैं उत्सुक हूं। क्या वीएलएफ की बड़ी संख्या नियमित लेनदेन के प्रदर्शन को प्रभावित करती है? या यह केवल बैकअप और रिस्टोर को प्रभावित करता है?
क्रिस एल्डरिच

@ChrisAldrich अगर किसी वीएलएफ सीमा (लेकिन अगर मैंने इसके बारे में नहीं सुना है तो) पर लेन-देन के दौरान ओवरहेड के कुछ छोटे स्तर हो सकते हैं, लेकिन प्रश्न में विस्तृत रूप से केवल उसी समय जब आप वास्तव में इसके प्रभाव को देखेंगे। वीएलएफ की एक बड़ी संख्या वसूली, मिररिंग या स्नैपशॉट के दौरान है।
साइमन रिगार्ट्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.