मुझे पता है कि वास्तव में तीन प्रकार के विखंडन हैं जिन्हें मुझे एक डीबीए के रूप में चिंतित होने की आवश्यकता है:
SQL डेटा फ़ाइलों में अनुक्रमणिका फ़्रेग्मेंटेशन, क्लस्टर किए गए अनुक्रमणिका (तालिका) विखंडन सहित। DBCC SHOWCONTIG (SQL 2000 में) या sysinos_ db_ index_ physical_ आँकड़े (2005+ में) का उपयोग करके इसे पहचानें।
SQL लॉग फ़ाइलों के अंदर VLF विखंडन । DBCC LOGINFO को देखें कि आपकी प्रत्येक SQL लॉग फ़ाइल में कितने VLF हैं।
हार्ड ड्राइव पर डेटाबेस फ़ाइलों का भौतिक फ़ाइल विखंडन। विंडोज में "डिस्क डिफ्रैगमेंटर" उपयोगिता का उपयोग करके इसका निदान करें। ( इस बेहतरीन ब्लॉग पोस्ट से प्रेरित )
सूचकांक विखंडन पर बहुत ध्यान दिया जाता है ( पॉल रान्डेल का यह उत्कृष्ट सर्वरफॉल्ट उत्तर देखें ), इसलिए यह मेरे प्रश्न का ध्यान केंद्रित नहीं है।
मुझे पता है कि मैं भौतिक विखंडन (और वीएलएफ विखंडन) को रोक सकता हूं जब डेटाबेस मूल रूप से एक उचित अपेक्षित डेटा फ़ाइल और लॉग आकार की योजना बनाकर बनाया जाता है, क्योंकि यह विखंडन अक्सर बढ़ने वाले और सिकुड़ने से होता है, लेकिन मुझे कैसे ठीक करना है इसके बारे में कुछ सवाल हैं पहचान होने के बाद शारीरिक विखंडन:
सबसे पहले, एक उद्यम पर भौतिक विखंडन भी प्रासंगिक है SAN? क्या मुझे एक ड्राइव पर Windows Defragmenter का उपयोग करना चाहिए SAN, या SAN टीम को आंतरिक डीफ़्रेग्मेंटिंग उपयोगिताओं का उपयोग करना चाहिए? क्या विखंडन विश्लेषण मुझे विंडोज ड्राइव से मिलता है, तब भी सटीक होता है जब SAN ड्राइव पर चलाया जाता है?
SQL प्रदर्शन पर भौतिक विखंडन कितना बड़ा सौदा है? (मान लें कि आंतरिक ड्राइव सरणी है, पूर्व प्रश्न का परिणाम लंबित है।) क्या यह आंतरिक सूचकांक विखंडन की तुलना में बड़ा सौदा है? या यह वास्तव में एक ही तरह की समस्या है (ड्राइव क्रमिक रीड के बजाय यादृच्छिक रीड करने के लिए है)
यदि ड्राइव भौतिक रूप से खंडित है, तो डीफ़्रैग्मेंटिंग (या पुनर्निर्माण) समय की बर्बादी को अनुक्रमित करता है? क्या मुझे दूसरे को संबोधित करने से पहले एक को ठीक करने की आवश्यकता है?
उत्पादन SQL बॉक्स पर भौतिक फ़ाइल विखंडन को ठीक करने का सबसे अच्छा तरीका क्या है? मुझे पता है कि मैं एसक्यूएल सेवाओं को बंद कर सकता हूं और विंडोज डेफ्राग चला सकता हूं, लेकिन मैंने एक ऐसी तकनीक के बारे में भी सुना है जहां आप एक पूर्ण बैकअप करते हैं, डेटाबेस को गिराते हैं, फिर बैकअप से एक खाली ड्राइव पर पुनर्स्थापित करते हैं। क्या यह बाद की तकनीक की सिफारिश की गई है? इस तरह एक बैकअप से बहाल करने से भी खरोंच से सूचकांक का निर्माण होता है, आंतरिक सूचकांक विखंडन को समाप्त करता है? या क्या यह पृष्ठ क्रम को उसी तरह लौटाता है जब बैकअप लिया गया था? (अगर वह मायने रखता है तो हम कम्प्रेशन के साथ क्वेस्ट लाइटस्पीड बैकअप का उपयोग कर रहे हैं।)
अद्यतन : अच्छा जवाब अब तक कि क्या डीफ्रेग्मेंट सैन ड्राइव्स (NO) और क्या इंडेक्स डिफ्रैग्मेंटेशन अभी भी भौतिक रूप से खंडित ड्राइव्स (YES) पर सार्थक है।
किसी और को वास्तव में डीफ़्रैग्मेन्टेशन करने के लिए सर्वोत्तम तरीकों पर वजन करने की परवाह है? या समय की लंबाई पर एक अनुमान आप यह उम्मीद कर सकते हैं कि यह एक बड़े खंडित ड्राइव को डीफ़्रैग करने के लिए ले जाएगा, 500GB या तो कहेंगे? प्रासंगिक, जाहिर है, क्योंकि उस समय मेरा SQL सर्वर डाउन हो जाएगा!
इसके अलावा, यदि किसी के पास भौतिक विखंडन को ठीक करके आपके द्वारा किए गए SQL प्रदर्शन में सुधार के बारे में कोई महत्वपूर्ण जानकारी है, तो यह बहुत अच्छा होगा। माइक का ब्लॉग पोस्ट समस्या को उजागर करने के बारे में बात करता है, लेकिन यह किस तरह के सुधार के बारे में विशिष्ट नहीं है।