2010-08-02 16 views
5

मेरी समझ की सीमा डेटाबेस को प्राथमिक कुंजी कैसे संग्रहीत करता है, क्लस्टर कुंजी पर आधारित एक बिट्री है जो प्रत्येक नोड को शेष कॉलम संग्रहीत करता है।SQL सर्वर एक समग्र प्राथमिक कुंजी कैसे संग्रहीत करता है?

मैंने पिछली शताब्दी के बाद से इस समझ को अद्यतन नहीं किया है और यह जानना अच्छा लगेगा कि SQL सर्वर एक प्राथमिक प्राथमिक कुंजी की तुलना में एक समग्र प्राथमिक कुंजी कैसे संग्रहीत करता है।

क्या कोई मुझे इस पर कुछ विस्तार करने में मदद कर सकता है?

+2

मेरे पास अब उचित उत्तर देने का समय नहीं है लेकिन केवल यह उल्लेख होगा कि वास्तव में यहां पर विचार करने के लिए 3 अलग-अलग संभावनाएं हैं (1) पीके क्लस्टर्ड इंडेक्स (2) पीके एक गैर क्लस्टर इंडेक्स है ढेर (3) पीके एक अन्य क्लस्टर सूचकांक के साथ एक मेज पर एक गैर क्लस्टर सूचकांक है। –

+0

तो क्लस्टर सूचकांक भंडारण है, पीके नहीं। मुझे लगता है कि मैंने इन वस्तुओं को समानार्थी के रूप में नहीं सोचा था। – Nat

उत्तर

4

एक समग्र कुंजी बिल्कुल सामान्य, एकल कॉलम, कुंजी के समान ही है, लेकिन यह लंबे समय से और कई मानों से बना है। मान लें कि आपके पास एक कॉलम पर बी-ट्री है, ए कहें। गैर-पत्ते वाले पृष्ठों में ए कॉलम के मानों के साथ स्लॉट होते हैं, और प्वाइंट पेज पर पॉइंटर्स होते हैं। पत्ती पृष्ठों में कॉलम ए मान (कुंजी) के साथ स्लॉट होते हैं, इसके बाद पंक्ति के सभी अन्य कॉलम होते हैं। एक समग्र कुंजी बिल्कुल वही है, लेकिन स्लॉट में मान समग्र मान होंगे, क्रम में उन्हें कुंजी में घोषित किया जाएगा।

Anatomy of a Page पर SQL सर्वर डेटा पेज के आंतरिक के बारे में एक शानदार विवरण है। इसके अलावा, केलन डेलाने की पुरानी एसक्यूएल 7.0 पुस्तक से अध्याय 6 तकनीक पर ऑनलाइन उपलब्ध है: Tables। अभी भी एक महान संसाधन है, मूल बातें अभी भी एसक्यूएल 2008 आर 2 पर लागू होती हैं (जो चीजें बदली जाती हैं वे अधिकतम प्रकार और संपीड़न सेटिंग्स के आसपास होती हैं, लेकिन जानकारी का बड़ा हिस्सा अभी भी मान्य है)।

संबंधित मुद्दे