जब मेरा SQLServer डेटाबेस डीफ़्रैग करने का समय है तो मैं कैसे बता सकता हूं?


9

SQLServer डेटाबेस विखंडन / प्रदर्शन रोलऑफ़ को मापने और SQLServer डेटाबेस तालिका को डीफ़्रैग करने का निर्धारण करने के लिए सबसे अच्छा अभ्यास क्या है?

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

जवाबों:


22

मुझे यकीन है कि इसके लिए कुछ दिलचस्प जवाब होंगे, क्योंकि मेट्रिक्स को देखने के लिए बहुत असहमति है। मैंने DBCC INDEXDEFRAG, SHOWCONTIG लिखा और 2005 के लिए उनके प्रतिस्थापन को डिजाइन किया, साथ ही पुस्तकें ऑनलाइन सामग्री भी लिखीं, इसलिए मैं आपको अपना विचार दूंगा, और किताबों की संख्या और 2005 के लिए रखरखाव योजना विज़ार्ड के बारे में बताऊंगा, जिसे मैंने चुना था।

सूचकांक विखंडन को देखने के लिए दो सर्वश्रेष्ठ मैट्रिक्स हैं: 1) (2005) प्रतिशत में औसत विखंडन / (2000) तार्किक स्कैन विखंडन 2) (2005) औसत पृष्ठ घनत्व / (2000) औसत बाइट्स प्रति पृष्ठ मुफ्त।

ये समान रूप से संकुल और गैर-अनुक्रमित अनुक्रमित पर लागू होते हैं।

1 माप रहा है कि कितना तार्किक विखंडन है। यह तब होता है जब एक सूचकांक के पत्ती स्तर पर पृष्ठों का तार्किक क्रम भौतिक क्रम से मेल नहीं खाता है। यह स्टोरेज इंजन को रेंज स्कैन के दौरान कुशल रीडहेड करने से रोकता है। तो # 1 रेंज स्कैन प्रदर्शन को प्रभावित करता है, सिंगलटन लुकअप प्रदर्शन नहीं।

2 यह माप रहा है कि सूचकांक के पत्ती स्तर पर प्रत्येक पृष्ठ पर कितना व्यर्थ स्थान है। व्यर्थ स्थान का अर्थ है कि आप अभिलेखों को संग्रहीत करने के लिए अधिक पृष्ठों का उपयोग कर रहे हैं, जिसका अर्थ है कि सूचकांक को संग्रहीत करने के लिए अधिक डिस्क स्थान, सूचकांक को पढ़ने के लिए अधिक IOs, और बफर पूल में पृष्ठों को स्मृति में रखने के लिए अधिक स्मृति।

सीमारेखा? मेरे अंगूठे का सामान्य नियम 10% विखंडन से कम है, कुछ भी न करें। 10-30%, ALTER INDEX करें ... REORGANIZE (2005) / DBCC INDEXDEFRAG (2000)। 30% से अधिक, ALTER INDEX करें ... REBUILD (2005) / DBCC DBREINDEX (2000)। ये पूरा सामान्यीकरण और थ्रेसहोल्ड के लिए कर रहे हैं आप अलग अलग होंगे।

अपने थ्रेसहोल्ड को खोजने के लिए, विखंडन के स्तर के खिलाफ वर्कलोड प्रदर्शन के कुछ ट्रैकिंग करें और निर्णय लें कि प्रदर्शन में गिरावट बहुत अधिक है। उस बिंदु पर आपको विखंडन के पते की आवश्यकता होगी। विखंडन के साथ रहने और इसे हटाने के संसाधन हिट लेने के बीच एक संतुलन कार्य है।

मैंने विखंडन को हटाने के दो तरीकों, विखंडन को कम करने के लिए FILLFACTOR / PADINDEX जैसी चीजों के बीच व्यापार-नापसंद को छुआ नहीं है, विखंडन को कम करने और विखंडन को कम करने के लिए स्कीमा / एक्सेस पैटर्न में परिवर्तन, या विभिन्न प्रकार की रखरखाव योजनाओं के लिए। ।

ओह, btw, मैं हमेशा 1000 से कम पृष्ठों वाले अनुक्रमित में विखंडन के बारे में परेशान नहीं करने की सलाह देता हूं। इसका कारण यह है कि सूचकांक शायद ज्यादातर स्मृति निवासी है (और क्योंकि लोगों ने एक संख्या के लिए कहा था और मुझे एक के साथ आना था)।

आप इस पर मेरे TechNet पत्रिका लेख में डेटाबेस रखरखाव पर http://technet.microsoft.com/en-us/magazine/cc671165.aspx पर और अधिक पढ़ सकते हैं , 2000 में सूचकांक आधारित डीफ़्रेग सर्वोत्तम प्रथाओं में व्हाइटपर ने मुझे लिखने में मदद की है। http://technet.microsoft.com/en-us/library/cc966523.aspx और मेरे ब्लॉग पर http://www.sqlskills.com/BLOGS/PAUL/category/Fragmentation.aspx पर फ्रेग्मेंटेशन श्रेणी के अंतर्गत ।

मुझे लगता है कि मैं इस तरह का जवाब देता हूं, लेकिन यह मेरे हॉट-बटनों में से एक है। उम्मीद है की यह मदद करेगा :-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.