Microsoft SQL मास्टर, ब्रेंट ओज़र के अनुसार, उन्होंने अपने पूरे करियर में कुछ भयानक डेटाबेस प्रदर्शन ट्यूनिंग निर्णय लिए हैं। सौभाग्य से हमारे लिए, हम उसकी गलतियों से लाभ उठा सकते हैं और हमें सब कुछ खुद ही पता लगाने की ज़रूरत नहीं है। क्वेस्ट डेटाबेस ट्रेनिंग डेज़ वेबकास्ट सीरीज़ के दौरान उन्होंने अपनी मेहनत की कमाई को मुफ़्त में शेयर किया है।
उनके एक सत्र में, हमने सीखा कि "आपके इंडेक्स को डीफ़्रैग्मेन्ट करने से मदद क्यों नहीं मिल रही है।" वास्तव में, यह आपके डेटाबेस के प्रदर्शन को खराब कर सकता है, और ब्रेंट ने हमें क्यों भरा। साथ ही, उन्होंने यह जानने के महत्व पर जोर दिया कि जब आप SQL सर्वर के प्रदर्शन को अनुकूलित करने की बात करते हैं तो आप क्या माप रहे हैं।
आंतरिक बनाम बाहरी विखंडन
ब्रेंट ने हमें एक त्वरित ट्यूटोरियल दिया जिस तरह से SQL सर्वर 8 KB "पृष्ठों" में डेटा संग्रहीत करता है। एक नए या फिर से बनाए गए इंडेक्स में, पेज सभी भरे हुए होते हैं और क्रम में संग्रहीत होते हैं। लेकिन, जैसे-जैसे अधिक डेटा जोड़ा जाता है, पृष्ठ विभाजित हो जाते हैं:सभी पृष्ठ पूर्ण नहीं होते हैं और वे क्रम से बाहर हो जाते हैं। आंतरिक और बाहरी विखंडन के बीच यह महत्वपूर्ण अंतर है:
- बाहरी फ़्रेग्मेंटेशन - इसका मतलब है कि पृष्ठ क्रम से बाहर हैं
- आंतरिक विखंडन - एक पृष्ठ पर खाली जगह को संदर्भित करता है
कम ऑन-पेज विभाजन पर ध्यान केंद्रित करना
कई डेटाबेस पेशेवर डेटाबेस विखंडन के माप के रूप में पृष्ठ विभाजन पर ध्यान केंद्रित करते हैं, हालांकि, ब्रेंट ने समझाया कि यह संख्या अर्थहीन है क्योंकि एक खाली तालिका में एक नई पंक्ति जोड़ते समय और एक नया पृष्ठ जोड़ते समय पृष्ठ विभाजन होता है। तो, यह बिल्कुल भी मददगार नहीं है।
बाहरी विखंडन कैसे चीजों को बदतर बना सकता है
इस सत्र में, ब्रेंट ने जोर देकर कहा कि बाहरी विखंडन डेटाबेस के प्रदर्शन का एक उपयोगी उपाय नहीं है क्योंकि पेज ऑर्डर का रखरखाव कार्यों की गति, रैम में क्वेरी चलाने या डिस्क से डेटा पढ़ने पर बहुत अधिक प्रभाव नहीं पड़ता है। इसलिए, डेटाबेस पेशेवर जो इंडेक्स को पुनर्गठित और पुनर्निर्माण करके बाहरी विखंडन को ठीक करने का प्रयास करते हैं, वास्तव में बैकअप को बढ़ाकर और अधिक रखरखाव विंडो समय का उपयोग करके प्रदर्शन को खराब कर रहे हैं।
डेटाबेस पेशेवर जो एक भरण कारक सेट करके पृष्ठों पर जगह छोड़कर बाहरी विखंडन को कम करने का प्रयास करते हैं, वे भी उस समस्या से भी बदतर हो रहे हैं जिसे वे ठीक करने का प्रयास कर रहे हैं। यह काफी हद तक इसलिए है क्योंकि आपको इंडेक्स में बीच-बीच में किसी बिंदु पर डेटा डालने की आवश्यकता नहीं है। इसलिए, प्रत्येक व्यक्तिगत पृष्ठ पर कम डेटा डालकर पृष्ठों को क्रम में रखने का प्रयास वास्तव में आंतरिक विखंडन का कारण बन रहा है।
प्रतीक्षा समय की निगरानी
इसके बजाय आपको क्या करना चाहिए? ब्रेंट भरण कारक को 100% (या कम से कम 80% या अधिक) के डिफ़ॉल्ट पर सेट करने की सलाह देता है और फिर उन्हें फिर से पैक करने के लिए अनुक्रमणिका का पुनर्निर्माण करता है। अगला, सही प्रदर्शन ट्यूनिंग संख्या - प्रतीक्षा समय की निगरानी पर ध्यान दें। अपने डेटाबेस इंस्टेंस में प्रतीक्षा समय के विभिन्न पहलुओं को देखने के सर्वोत्तम तरीकों में से एक प्रदर्शन निगरानी उपकरण का उपयोग करके यह पता लगाना है कि प्रक्रियाएं कहां रुक रही हैं।
इंडेक्स फ़्रेग्मेंटेशन, प्रतीक्षा समय के आंकड़े और इंडेक्स रखरखाव के बारे में आपको क्या करना चाहिए, इस पर ब्रेंट की और भी अधिक जानकारी के लिए, वेबकास्ट ऑन-डिमांड सुनें।
आप क्वेस्ट के डेटाबेस प्रशिक्षण दिनों के माध्यम से डेटाबेस के प्रदर्शन पर अधिक विशेषज्ञ सलाह भी प्राप्त कर सकते हैं।