यदि आपके पास प्राथमिक कुंजी (int) पर क्लस्टर्ड इंडेक्स वाली तालिका है, तो क्या यह अनावश्यक और खराब है (एक और अधिक) गैर क्लस्टर इंडेक्स जिसमें गैर-कॉलम में कॉलम में से एक के रूप में प्राथमिक कुंजी कॉलम शामिल है, क्लस्टर सूचकांक?क्या यह गैर-क्लस्टर्ड इंडेक्स होना बुरा है जिसमें क्लस्टर्ड इंडेक्स से प्राथमिक कुंजी है?
उत्तर
असल में वहाँ वैध कारण एक गैर क्लस्टर सूचकांक समान संकुल एक साथ बनाने के लिए हो सकता है। कारण यह है कि क्लस्टर्ड इंडेक्स पंक्ति डेटा के सामान लेते हैं और इससे बहुत खराब पंक्ति घनत्व हो सकता है। अर्थात। आपके पास क्लस्टर कुंजी में नहीं होने वाले विस्तृत फ़ील्ड के कारण प्रति पृष्ठ 2-3 पंक्तियां हो सकती हैं, लेकिन क्लस्टरर्ड इंडेक्स कुंजी केवल 20 बाइट्स कहती है। पर एक गैर-क्लस्टर इंडेक्स होने पर बिल्कुल समान कुंजी और क्रम के रूप में क्लस्टरर्ड इंडेक्स 2-3 सैकड़ों प्रति पृष्ठ कुंजी का घनत्व प्रदान करेगा। ओलाप/बीआई वर्कलोड के लिए सामान्य रूप से बहुत सारे प्रश्नों का उत्तर गैर-क्लस्टर इंडेक्स द्वारा अधिक कुशलता से दिया जा सकता है, क्योंकि यह सैकड़ों बार I/O को कम करता है।
क्लस्टर कुंजी के हिस्सों, या यहां तक कि एक ही कुंजी के अलावा गैर-क्लस्टर इंडेक्स के लिए, लेकिन अलग-अलग क्रम में, तो सभी दांव बंद हैं क्योंकि स्पष्ट रूप से कई प्रश्नों के लिए उपयोग किया जा सकता है।
तो आपके प्रश्न का उत्तर यह है: यह पर निर्भर करता है।
अधिक सटीक उत्तर के लिए आपको अपनी तालिका (ओं) की सटीक स्कीमा और शामिल सटीक प्रश्नों को साझा करना होगा।
कोई 100% उत्तर नहीं है, लेकिन उत्तर लगभग निश्चित रूप से है।
अन्य अनुक्रमणिका वहां शामिल होने और सॉर्टिंग (आमतौर पर) में सहायता करने में सहायता करने के लिए हैं। यह देखते हुए कि प्राथमिक कुंजी पहले से ही अनुक्रमित है, अगर अनुकूलक उस पर आधारित हो सकता है तो इसका उपयोग करेगा।
यदि किसी अन्य इंडेक्स को शामिल/सॉर्ट परिप्रेक्ष्य से आवश्यक है, तो इंडेक्स मिश्रण में पीके को अतिरिक्त सहायता क्या है? अगर यह पहले पीके के आधार पर शामिल नहीं हो सका, तो यह अभी नहीं जा रहा है। और यह वास्तव में किसी भी क्रमबद्ध करने में मदद करने के लिए नहीं जा रहा है।
हां, यह आम तौर पर आवश्यक नहीं है, क्योंकि क्लस्टर्ड इंडेक्स के कॉलम पहले से ही गैर-क्लस्टर इंडेक्स में प्रत्येक इंडेक्स एंट्री में जोड़े जाते हैं।
क्यों? क्लस्टर कुंजी का मान वास्तव में SQL सर्वर को डेटा की एक पंक्ति "ढूंढने" की अनुमति देता है - यह वास्तविक डेटा के लिए "पॉइंटर" है - इसलिए obviuosly, इसे गैर-क्लस्टर इंडेक्स में संग्रहीत किया जाना है। यदि आपने "स्मिथ, जॉन" को देखा है और आपको इस व्यक्ति के बारे में और जानने की जरूरत है, तो आपको वास्तविक डेटा -> पर जाना होगा और यह गैर-सूचकांक के इंडेक्स नोड में क्लस्टरिंग कुंजी के मूल्य को शामिल करके किया जाता है। क्लस्टर सूचकांक।
वह क्लस्टर कुंजी मान पहले से मौजूद है, और इस प्रकार आम तौर पर यह गैर-क्लस्टर सूचकांक के लिए उस मूल्य को फिर से जोड़ने के लिए अनावश्यक और अनावश्यक है। यह बुरा है कि यह आपको बिना किसी लाभ के बस अंतरिक्ष को बर्बाद कर देता है।
मैं इस पर रीमस के साथ हूं - एक क्लस्टर सूचकांक वास्तव में एक सूचकांक नहीं है - यह आपको बताता है कि पृष्ठों में डेटा कैसे व्यवस्थित किया जाता है। (आपके मामले में, यह प्राथमिक कुंजी भी है, लेकिन यह एक ही चीज़ होने की आवश्यकता नहीं है)। गैर क्लस्टर इंडेक्स में उस पंक्ति लोकेटर की जानकारी शामिल है, इसलिए हाँ, यह अनावश्यक है।
लेकिन अगर एक गैर क्लस्टर सूचकांक और डेटा पंक्ति बुकमार्क इस्तेमाल किया जा की जरूरत नहीं है को कवर किया जाता है, यह एक बहुत अधिक कुशलता से क्लस्टर सूचकांक, और दक्षता इस्तेमाल किया जा सकता गैर-क्लस्टर इंडेक्स के आकार में डेटा पंक्ति के आकार के अनुपात के अनुपात के रूप में बढ़ता है।
मुझे पता चला है कि यदि आपके प्रश्न वर्कलोड में पहुंच पथों पर एक अच्छा संभाल है, तो कभी-कभी गैर-क्लस्टर्ड इंडेक्स को चुनने वाले कुछ चुनिंदा क्लस्टरिंग विकल्पों को पूरी तरह से खत्म करने के लिए उपयोग किया जा सकता है - हीप टेबल, एक पीके, और कुछ अच्छी गैर-क्लस्टर इंडेक्स, और आप कर चुके हैं।
- 1. क्लस्टर्ड इंडेक्स
- 2. मेरे क्लस्टर्ड इंडेक्स पर स्कैन क्यों है?
- 3. MySQL आप क्लस्टर्ड इंडेक्स कैसे बनाते हैं?
- 4. एसक्यूएल सर्वर - क्लस्टर्ड इंडेक्स मौजूद है या नहीं,
- 5. एसक्यूएल सर्वर - विभाजित टेबल्स बनाम क्लस्टर्ड इंडेक्स?
- 6. क्लस्टर्ड इंडेक्स कॉलम पर गैर क्लस्टर इंडेक्स प्रदर्शन में सुधार करता है?
- 7. एसक्यूएल सर्वर इंडेक्स प्राथमिक कुंजी शामिल हैं?
- 8. क्लस्टर्ड इंडेक्स को किस कॉलम पर रखा जाना चाहिए?
- 9. एसक्यूएल सर्वर प्रदर्शन: गैर-क्लस्टर्ड इंडेक्स + कॉलम बनाम क्लस्टर्ड इंडेक्स - समकक्ष?
- 10. एंटिटी फ्रेमवर्क कई से कई क्लस्टर्ड बनाम नॉनक्लस्टर्ड इंडेक्स
- 11. ऑर्थोगोनल इंडेक्स क्या है?
- 12. एसक्यूएल: प्राथमिक कुंजी और इंडेक्स वास्तव में क्या करते हैं?
- 13. विदेशी कुंजी और प्राथमिक कुंजी पर पोस्टग्रेज और इंडेक्स
- 14. मैं क्लस्टर्ड इंडेक्स अपडेट क्यों कर रहा हूं?
- 15. SQL सर्वर में क्लस्टर्ड इंडेक्स का चयन कैसे करें?
- 16. क्या मुझे विदेशी कुंजी पर इंडेक्स बनाने की ज़रूरत है?
- 17. क्या प्राथमिक कुंजी हमेशा क्लस्टर होती है?
- 18. अनन्य इंडेंटिफायर क्लस्टर्ड इंडेक्स पर नया अनुक्रमिक आईडी
- 19. क्या SQL सर्वर 2008 गैर-क्लस्टर्ड इंडेक्स में क्लस्टरर्ड इंडेक्स फ़ील्ड हैं?
- 20. प्राथमिक कुंजी हमेशा एसक्यूएल सर्वर में अनुक्रमित है?
- 21. इंडेक्स खोज बनाम क्लस्टर्ड इंडेक्स स्कैन - स्कैन क्यों चुना जाता है?
- 22. एसक्यूएल कॉम्पैक्ट संस्करण क्लस्टर्ड इंडेक्स का समर्थन करता है?
- 23. क्या एसक्यूएल सर्वर अनन्य कुंजी भी एक इंडेक्स है?
- 24. प्राथमिक कुंजी/क्लस्टेड इंडेक्स में GUID का उपयोग
- 25. एक समग्र अद्वितीय इंडेक्स (गैर-प्राथमिक)
- 26. क्लस्टरर्ड इंडेक्स स्कैन के बजाय क्लस्टर्ड इंडेक्स सीक पाने के लिए मुझे क्या करना चाहिए?
- 27. किसी तालिका में किसी भी इंडेक्स के बिना प्राथमिक कुंजी?
- 28. क्लस्टर इंडेक्स के प्रदर्शन में सुधार GUID प्राथमिक कुंजी
- 29. स्टार्ट इंडेक्स से एंड इंडेक्स
- 30. कोई प्राथमिक कुंजी