हीप स्टोरेज का इन हीप से कोई लेना-देना नहीं है ।
हीप का मतलब है कि रिकॉर्ड खुद ऑर्डर नहीं किए जाते हैं (यानी एक दूसरे से जुड़े नहीं हैं)।
जब आप कोई रिकॉर्ड सम्मिलित करते हैं, तो वह डेटाबेस को मिलने वाली खाली जगह में बस डाला जाता है।
हीप आधारित तालिका में एक पंक्ति को अपडेट करने से अन्य रिकॉर्ड प्रभावित नहीं होते हैं (हालांकि यह द्वितीयक अनुक्रमणिका को प्रभावित करता है)
यदि आप HEAP
. पर द्वितीयक अनुक्रमणिका बनाते हैं तालिका, RID
(भंडारण स्थान के लिए एक प्रकार का भौतिक सूचक) एक पंक्ति सूचक के रूप में प्रयोग किया जाता है।
क्लस्टर्ड इंडेक्स का मतलब है कि रिकॉर्ड एक B-Tree
. का हिस्सा हैं . जब आप कोई रिकॉर्ड सम्मिलित करते हैं, तो B-Tree
फिर से जोड़ने की जरूरत है।
एक संकुल तालिका में एक पंक्ति को अद्यतन करने से बी-ट्री को फिर से जोड़ा जा सकता है, i. इ। अन्य रिकॉर्ड में आंतरिक पॉइंटर्स को अपडेट करना।
यदि आप किसी संकुल तालिका पर द्वितीयक अनुक्रमणिका बनाते हैं, तो संकुल अनुक्रमणिका कुंजी का मान पंक्ति सूचक के रूप में उपयोग किया जाता है।
इसका मतलब है कि एक संकुल सूचकांक अद्वितीय होना चाहिए। यदि एक संकुल अनुक्रमणिका अद्वितीय नहीं है, तो एक विशेष छिपा हुआ स्तंभ जिसे uniquifier
. कहा जाता है अनुक्रमणिका कुंजी में जोड़ा जाता है जो if को अद्वितीय (और आकार में बड़ा) बनाती है।
यह भी ध्यान देने योग्य है कि किसी स्तंभ पर द्वितीयक अनुक्रमणिका बनाने से मान या संकुल अनुक्रमणिका की कुंजी द्वितीयक अनुक्रमणिका की कुंजी का भाग बन जाती है।
एक संकुल तालिका पर एक अनुक्रमणिका बनाकर, आप वास्तव में हमेशा एक समग्र अनुक्रमणिका प्राप्त करते हैं
CREATE UNIQUE CLUSTERED INDEX CX_mytable_1234 (col1, col2, col3, col4)
CREATE INDEX IX_mytable_5678 (col5, col6, col7, col8)
इंडेक्स IX_mytable_5678
वास्तव में निम्नलिखित स्तंभों पर एक अनुक्रमणिका है:
col5
col6
col7
col8
col1
col2
col3
col4
इसका एक और दुष्प्रभाव है:
एक DESC
संकुल तालिका पर एकल-स्तंभ अनुक्रमणिका में स्थिति SQL Server
में समझ में आती है
यह सूचकांक:
CREATE INDEX IX_mytable ON mytable (col1)
इस तरह की क्वेरी में इस्तेमाल किया जा सकता है:
SELECT TOP 100 *
FROM mytable
ORDER BY
col1, id
, जबकि यह एक:
CREATE INDEX IX_mytable ON mytable (col1 DESC)
इस तरह की क्वेरी में इस्तेमाल किया जा सकता है:
SELECT TOP 100 *
FROM mytable
ORDER BY
col1, id DESC