सवाल यह नहीं है कि 'पीके को NC कब होना चाहिए', बल्कि आपको यह पूछना चाहिए कि 'क्लस्टर इंडेक्स के लिए उचित कुंजी क्या है'?
और जवाब वास्तव में इस बात पर निर्भर करता है कि आप डेटा की क्वेरी कैसे करते हैं । क्लस्टर किए गए इंडेक्स का अन्य सभी इंडेक्स पर एक फायदा है: क्योंकि इसमें हमेशा सभी कॉलम शामिल होते हैं, हमेशा कवर होता है। इसलिए प्रश्न जो क्लस्टर इंडेक्स का लाभ उठा सकते हैं, निश्चित रूप से अनुमानित कॉलम और / या डेडिकेट्स में से कुछ को संतुष्ट करने के लिए लुकअप का उपयोग करने की आवश्यकता नहीं है।
पहेली का एक और टुकड़ा यह है कि सूचकांक का उपयोग कैसे किया जा सकता है ? तीन विशिष्ट पैटर्न हैं:
- जांच करता है, जब सूचकांक में एकल कुंजी मूल्य की तलाश होती है
- श्रेणी स्कैन, जब कुंजी मानों की एक श्रृंखला पुनर्प्राप्त की जाती है
- आवश्यकताओं द्वारा आदेश, जब एक सूचकांक w / o द्वारा स्टॉप-एंड-गो सॉर्ट की आवश्यकता के ऑर्डर को संतुष्ट कर सकता है
इसलिए यदि आप अपने अपेक्षित लोड (प्रश्नों) का विश्लेषण करते हैं और यह पता लगाते हैं कि बड़ी संख्या में प्रश्न किसी विशेष सूचकांक का उपयोग करेंगे क्योंकि वे एक निश्चित पैटर्न का उपयोग करते हैं जो एक सूचकांक से लाभान्वित करता है, तो यह उस सूचकांक को क्लस्टर इंडेक्स के रूप में प्रस्तावित करने के लिए समझ में आता है।
फिर भी एक अन्य कारक यह है कि संकुल सूचकांक कुंजी सभी गैर-संकुलित सूचकांकों द्वारा उपयोग की जाने वाली लुकअप कुंजी है और इसलिए एक विस्तृत क्लस्टर इंडेक्स कुंजी एक तरंग प्रभाव पैदा करती है और सभी गैर-क्लस्टर सूचकांकों और विस्तृत सूचकांकों को अधिक पृष्ठ, अधिक I / O , अधिक स्मृति, कम अच्छाई।
एक अच्छा क्लस्टर इंडेक्स स्थिर है , यह इकाई के जीवनकाल के दौरान नहीं बदलता है, क्योंकि क्लस्टर इंडेक्स कुंजी मूल्यों में बदलाव का मतलब है कि पंक्ति को हटा दिया जाना चाहिए और वापस डाला जाना चाहिए।
और एक अच्छा क्लस्टर इंडेक्स बेतरतीब ढंग से नहीं बढ़ता है (प्रत्येक नए सम्मिलित कुंजी मूल्य पूर्ववर्ती मूल्य से बड़ा है) के रूप में पेज विभाजन और विखंडन ( FILLFACTOR
एस के साथ खिलवाड़ के बिना) से बचने के लिए ।
तो अब जब हम जानते हैं कि एक अच्छा क्लस्टर इंडेक्स कुंजी क्या है, तो प्राथमिक कुंजी (जो कि तार्किक संपत्ति का डेटा मॉडलिंग करती है) क्या आवश्यकताओं से मेल खाती है? यदि हाँ, तो पीके का क्लस्टर किया जाना चाहिए। यदि नहीं, तो पीके गैर-संकुल होना चाहिए।
एक उदाहरण देने के लिए, बिक्री तथ्यों की तालिका पर विचार करें। प्रत्येक प्रविष्टि में एक आईडी है जो प्राथमिक कुंजी है। लेकिन अधिकांश क्वेरीज़ एक तारीख और दूसरी तारीख के बीच डेटा मांगती हैं, इसलिए सबसे बेहतर क्लस्टर इंडेक्स की बिक्री की तारीख होगी , न कि आईडी । प्राथमिक कुंजी से अलग क्लस्टर इंडेक्स होने का एक और उदाहरण एक 'श्रेणी', या 'राज्य' की तरह बहुत ही कम मूल्यों के साथ एक बहुत ही कम चयनात्मकता कुंजी है। सबसे कम कुंजी के रूप में इस कम चयनात्मकता कुंजी के साथ एक संकुल सूचकांक कुंजी होने, उदाहरण के लिए (state, id)
, अक्सर एक विशेष 'राज्य' में सभी प्रविष्टियों को देखने वाली रेंज स्कैन के कारण समझ में आता है।
एक ढेर पर एक गैर-संकुल प्राथमिक कुंजी की संभावना के बारे में एक आखिरी नोट (यानी कि कोई संकुल सूचकांक नहीं है)। यह एक मान्य परिदृश्य हो सकता है, सामान्य कारण यह है कि जब थोक सम्मिलित प्रदर्शन महत्वपूर्ण होता है, क्योंकि क्लस्टर्ड सूचकांकों की तुलना में ढेर में बेहतर थोक सम्मिलित थ्रूपुट होते हैं।