क्लस्टरिंग अनुक्रमण अब होना चाहिए - क्यों?


9

इससे पहले, गैर-निर्णायक मेरे साथ बहस (चर्चा) करते थे कि क्या (हमेशा) क्लस्टर इंडेक्स से जुड़ना / बचना है।

खैर, मैं समझ गया कि उनका उपयोग कभी-कभी उचित + विशिष्ट उद्देश्यों और संदर्भ के साथ किया जाना है।

SQL Azure डेटाबेस क्लस्टर इंडेक्स आवश्यकताएँ :

"SQL Azure बिना क्लस्टर किए इंडेक्स के तालिकाओं का समर्थन नहीं करता है। एक टेबल में क्लस्टर इंडेक्स होना चाहिए। यदि टेबल बिना क्लस्टर किए हुए अवरोध के साथ बनाई गई है, तो टेबल पर इंसर्ट ऑपरेशन से पहले एक क्लस्टर इंडेक्स बनाया जाना चाहिए।"

पिछले निष्कर्ष, औचित्य और स्पष्टीकरण में फिट नहीं है।

औचित्य क्या है, जो मैंने बिना किसी अपवाद के कठोर अनुक्रमों की सर्वव्यापकता को लागू करने से पहले ही समझा दिया था?


4
SQL Azure SQL सर्वर से भिन्न है जैसा कि आप जानते हैं। Azure एक वितरित डेटाबेस है, जो आपके डेटा को एक से अधिक भौतिक मशीन में संग्रहीत करता है। इसीलिए।

1
ध्यान दें कि Azure SQL डेटाबेस सेवा के v12 में, आपके पास एक संकुल अनुक्रमणिका के बिना तालिका हो सकती है।
ट्रॉय हंट

जवाबों:


11

SQL Azure के अंदर पढ़ें :

SQL Azure अनुप्रयोग डेटा संग्रहण के लिए तार्किक डेटाबेस प्रदान करता है। वास्तव में, प्रत्येक सब्सक्राइबर का डेटा वास्तव में कई बार संग्रहीत होता है, जिसे तीन SQL सर्वर डेटाबेसों में दोहराया जाता है जो कि एक ही डेटा सेंटर में तीन भौतिक सर्वरों में वितरित किए जाते हैं। कई ग्राहक समान भौतिक डेटाबेस साझा कर सकते हैं।

क्लस्टर्ड कीज़ की आवश्यकता होती है ताकि आपके डेटा की तीन प्रतिकृतियों को सिंक में रखा जा सके। डब्ल्यू / ओए कुंजी, यह जानना असंभव है कि कौन सी पंक्तियों को अपडेट किया गया था। हीप्स (टेबल w / o क्लस्टर्ड इंडेक्स) में केवल भौतिक 'कुंजियां' (फाइलिड: पेजिड: स्लॉट) है और चूंकि आपके तार्किक डेटाबेस के 3 प्रतिकृतियां अन्य तार्किक डेटाबेस के साथ भौतिक डेटाबेस साझा करते हैं, एक सर्वर पर भौतिक पते का दूसरे पर कोई अर्थ नहीं है। प्रतिकृतियां, इसलिए ढेर को दोहराया नहीं जा सकता है।


A (तार्किक) कुंजी को एक संकुल अनुक्रमणिका में निवास नहीं करना है। यह गैर-स्पष्ट हो सकता है। शायद असली कारण क्यों (संभवतः अद्वितीय?) क्लस्टर किए गए सूचकांक की आवश्यकता है, यह है कि ढेर आरआईडी का उपयोग करते हैं जबकि अद्वितीय क्लस्टर किए गए सूचकांक नहीं करते हैं। क्या आपका आशय यही था?
nvogel

3
लिंक किए गए दस्तावेज़ से: "SQL Azure में अंतर्निहित उच्च उपलब्धता और प्रतिकृति तकनीक B-ट्री पंक्तियों की प्रतिकृति पर आधारित है।" यहां तक ​​कि अगर एक ढेर में एक नेकां कुंजी होगी, तो आप केवल नेकां को दोहरा सकते हैं, लेकिन खुद ही ढेर नहीं।
रेमस रूसु


1

Azure एक वितरित, दूरस्थ सर्वर पर क्लाउड आधारित प्रणाली है। डेटा संभवतः कई ड्राइव / सर्वर पर संग्रहीत किया जाएगा, और यह एक ढेर पर ऐसा करने के लिए बेहद अक्षम होगा (क्योंकि सिस्टम को यह जानना होगा कि किस मशीन को जांचना है, और बिना क्लस्टर किए सूचकांक यह एक संसाधन-गहन ऑपरेशन है) ।

संकुल अनुक्रमणिका तालिका पर सभी पंक्तियों और अन्य सभी अनुक्रमणिकाओं के लिए एक लुकअप प्रदान करती है, इसलिए अज़रे में प्रत्येक ऑपरेशन के बिना कई मशीनों में एक टेबल स्कैन होगा।


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