वहाँ एक SAN वातावरण में SQL अनुक्रमित defragmenting के लिए कोई लाभ है?


16

हमारा SQL सर्वर एक SAN पर रहता है। इसमें दर्जनों ओएलटीपी डेटाबेस शामिल हैं, कुछ में कई टेबल हैं जिनमें 1 मीटर से अधिक रिकॉर्ड हैं।

हम साप्ताहिक रूप से ओला हैलेनग्रेन के सूचकांक रखरखाव स्क्रिप्ट चला रहे हैं , और यह हर बार कई घंटों तक चलता है। विखंडन दहलीज के आधार पर, स्क्रिप्ट या तो एक सूचकांक को पुनर्गठित करेगी या फिर करेगी। हमने देखा है कि रेनडेक्सिंग के दौरान, लॉग फाइलें बहुत बड़ी हो जाती हैं, जिससे लॉग शिपिंग के दौरान बैंडविड्थ की अत्यधिक खपत होती है।

इसके बाद ब्रेंट ओजर का एक लेख आता है जिसमें वह एसक्यूएल इंडेक्स के बारे में चिंता करना बंद करने के लिए कहते हैं :

आपकी हार्ड ड्राइव को अन्य सर्वरों के साथ साझा किया जाता है जो एक ही समय में ड्राइव अनुरोध भी कर रहे हैं, इसलिए डेटा प्राप्त करने के लिए ड्राइव हमेशा सभी जगह कूदते रहेंगे। अपने अनुक्रमितों को डीफ़्रैग्मेंट करना केवल व्यर्थ व्यस्त काम है।

इस प्रश्न को गूगुल करने से राय अलग-अलग हो जाती है, अधिकांश उन तर्कों से समर्थित होती है जो बहुत संक्षिप्त या कमजोर लगते हैं। हमारी अस्थायी योजना हमारी रखरखाव स्क्रिप्ट में विखंडन सीमा को समायोजित करना है ताकि यह अधिक से अधिक बार पुनर्गठित हो जाए।

अंतिम फैसला क्या है? साप्ताहिक रखरखाव कार्य चलाने से जुड़े बोझ को देखते हुए, क्या यह एसक्यूएल इंडेक्स को डीईएफ़र करने के लिए सार्थक है?

जवाबों:


10

डीफ़्रैग्मेन्टेशन रणनीति डिस्क से / से स्कैन गति को बेहतर बनाने में मदद करती है ।

राय की व्यापक विविधता है क्योंकि एक पर्यावरण की आदर्श डीफ़्रैग्मेन्टेशन रणनीति कई अलग-अलग कारकों पर निर्भर करती है। खेलने में विखंडन की कई संभावित परतें भी हैं।

यह कहना कि आपके डेटाबेस को सैन पर संग्रहित किया गया है, पर्याप्त जानकारी नहीं है। उदाहरण के लिए:

  • क्या डेटाबेस फ़ाइलों को अलग-अलग भौतिक RAID समूहों या समान RAID समूह पर संग्रहीत किया जाता है? उसी डिवाइस पर कौन सी अन्य प्रक्रियाएं सक्रिय हैं? क्या आपकी बैकअप फाइलें भी वहीं खत्म हो रही हैं? आपको इस जानकारी के लिए अपने SAN व्यवस्थापक से पूछना पड़ सकता है, क्योंकि यह हमेशा पारदर्शी नहीं होता है।

  • डेटाबेस के लिए एक्सेस पैटर्न क्या हैं? ओएलटीपी आमतौर पर रैंडम एक्सेस है, लेकिन कभी-कभी एक एप्लिकेशन टेबल-स्कैन-खुश होता है और आप इसके व्यवहार (आईएसवी ऐप) को बदल नहीं सकते हैं। क्या अनुप्रयोग अधिकांशतः पढ़े-लिखे होते हैं, अधिकतर, या कहीं बीच में होते हैं?

  • देखते हैं खेल में प्रदर्शन SLAs एक वसूली / विफलता की अवधि के दौरान ?

ब्रेंट की पोस्ट मानती है कि भंडारण का एक विशाल पूल है और सब कुछ इसे साझा करता है। इसका मतलब है कि भौतिक डिस्क शायद ही कभी निष्क्रिय हैं, और इसलिए अधिकांश पहुंच यादृच्छिक है। यदि वह आपकी स्थिति है, तो सलाह लागू होती है, और मैं इसके लिए सबसे अधिक सहमत हूं। हालांकि इस प्रकार की रणनीति का प्रबंधन करना बहुत आसान है, लेकिन यह जरूरी नहीं है कि (a) आपके वातावरण में क्या है, या (b) आपके पर्यावरण के लिए सबसे अच्छा समाधान क्या है।

यदि अनुरक्षण रखरखाव बोझ है, तो इसे कम आक्रामक तरीके से करने पर विचार करें, और / या सप्ताह में लागत को बढ़ाएँ (यानी, एक बार / सप्ताह में भारी रखरखाव के बजाय / दिन में एक बार प्रकाश रखरखाव चलाएं)।

आप SortInTempdbउपयोगकर्ता डेटाबेस में लॉगिंग की मात्रा को कम करने के लिए विकल्प को चालू कर सकते हैं ।


वाह, पूरी तरह से जवाब। यह सब अनुसंधान करने के लिए मुझे कुछ समय लगेगा, लेकिन मुझे संदेह नहीं है कि आप मुझे सही रास्ते पर ले जा रहे हैं। हमारी वर्तमान रणनीति वास्तव में पुनर्निर्माण और पुनर्निर्माण के दृष्टिकोण दोनों से कम आक्रामक तरीके से चलाने के लिए है, मुझे लगता है कि मैंने इस प्रश्न में गलत व्याख्या की है। वहाँ से मैं आपके द्वारा बताए गए बाकी कारकों पर अधिक शोध करूँगा।
dev_etter

1
@dev_etter: मैंने केवल कुछ कारकों को सूचीबद्ध किया है; और भी कई हैं। मुख्य बिंदु बहुत पहला वाक्य है। यदि आप अपने पर्यावरण के बारे में सोचते समय इसे ध्यान में रखते हैं, तो यह आपके निर्णय को सही ढंग से निर्देशित करेगा। सब कुछ उसी से उपजा। (इसके अलावा, सभी मानते हैं कि कोई एसएसडी शामिल नहीं है।)
जॉन सिगेल

FWIW, मैंने कुछ पूरी तरह से अनदेखा कर दिया था - नौकरी के चरण में वास्तविक स्क्रिप्ट (स्रोत के बजाय) को प्रत्येक सूचकांक को संबोधित करने के लिए कॉन्फ़िगर किया गया था जिसका न्यूनतम विखंडन प्रतिशत 1 था। मैंने इसे 15 तक टकराया और 30 से पुनर्निर्माण गुना भी टकराया 35. नौकरी अब 8. के ​​बजाय 3 घंटे से अधिक समय में चलती है। कम आक्रामक होने का आपका सुझाव सही था। मेरी गलती इस तथ्य में झूठ है कि मुझे लगा कि नौकरी पहले से ही कम आक्रामक होने के लिए लागू की गई थी। यह दृष्टिकोण शायद हमारे लिए सबसे अच्छा है, फिर भी स्पर्श करें और जाएं लेकिन इसने पहले से ही कुछ दर्द को कम कर दिया है।
dev_etter

@JonSeigel मैं इस जवाब से पूरी तरह सहमत हूँ। अपनी यात्रा में मुझे सबसे अधिक डीबीए एक ही पूल, या कम से कम एक सरणी को समान RAID स्तर पर साझा करते हुए दिखाई देता है। मैं 3AM 24x7 पर 100 + टीबी डेटाबेस के अलग-अलग फ़ाइलग्रुप को डीफ़्रैग करने के लिए डीबीए कर चुका हूं ... और वास्तव में क्या? हम डिस्क पर पूरी तरह से यादृच्छिक IO थे और विलंबता 15ms था। उस समय मुझे सिर्फ 15ms की ओर इशारा करना चाहिए और डेवलपर्स से कहना चाहिए कि वे मुझे अकेला छोड़ दें।
ooutwire

2

आदर्श रूप में, आपको केवल उन अनुक्रमणिकाओं के लिए पुनर्गठित / पुन: सक्रिय होना चाहिए, जिन पर ध्यान देने की आवश्यकता है, अन्यथा आप संसाधनों को बर्बाद कर रहे हैं और संभवतः अन्य समस्याएं पैदा कर रहे हैं।

आपको एक प्रदर्शन बेसलाइन स्थापित करने की आवश्यकता है और जब भी आप बदलाव करते हैं तो यह निर्धारित करने के लिए आधारभूत के खिलाफ प्रदर्शन परिवर्तन की तुलना करें कि क्या आपका परिवर्तन लागू करने के लायक है।


हमारी तात्कालिक रणनीति सिर्फ इतना है कि - हम इस स्क्रिप्ट में minFragmentation और rebuildThreshold वैरिएबल के लिए सेटिंग्स को ट्विक करने जा रहे हैं: sqlfool.com/2011/06/index-defrag-script-v4-1
dev_etter

0

ठीक है, सवाल डेटाबेस इंडेक्स के बारे में है, जो एक फाइल या फाइलों के सेट का निर्माण है। उपरोक्त उत्तरों को पढ़ने से एक व्यक्ति को विश्वास हो जाएगा कि हम डिस्क स्तर पर विखंडन के बारे में बात कर रहे हैं, न कि किसी फ़ाइल के अंदर अनुक्रमणिका। ये पूरी तरह से अलग विषय हैं।

जब अनुक्रमित डी-खंडित या पुन: निर्मित होते हैं तो ओएलटीपी डेटाबेस में डेटा पुनर्प्राप्त करते समय यहां मायोपिक दृष्टिकोण प्रदर्शन होगा। इसका जवाब है हाँ! हालांकि, यह ध्यान रखना महत्वपूर्ण है कि डिस्क विखंडन भी एक कारक है।

न्यूनतम "लागत" कुल मिलाकर? अपने डेटाबेस का रखरखाव करें। दूसरी सबसे कम लागत, डेटाबेस को अलग करें, इसे कहीं और स्थानांतरित करें, अपने डिस्क को फिर से प्रारूपित करें और डिस्क विभाजन संरेखण के लिए सर्वोत्तम प्रथाओं का पालन करें http://msdn.microsoft.com/en-us/library/dd758814.aspx । पिछले नहीं बल्कि कम से कम, एक तीसरे पक्ष के उन्नत डिफैगमेंटर का उपयोग करें जैसे कि डिस्ककीपर।

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


2
आप शायद स्पष्ट रूप से कहने से बचना चाहते हैं "उत्तर हां है!" अन्य पोस्टरों द्वारा लम्बाई पर चर्चा की गई है। हालांकि यह सच हो सकता है कि कभी-कभी इसका उत्तर "हां" होता है, जैसा कि ब्रेंट ओजर ने अपने ब्लॉग पोस्ट में दिखाया है, यह हमेशा ऐसा नहीं होता है।
मैक्स वर्नोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.