एक अनुक्रमणिका SQL सर्वर को पंक्तियों से डेटा को तेज़ी से पुनर्प्राप्त करने में सहायता करती है। इंडेक्स किताबों की शुरुआत में सामग्री की तालिका की तरह काम करते हैं, जिससे आप उस पेज को देख सकते हैं जिस पर कोई विषय तेजी से है। अनुक्रमित के बिना, SQL सर्वर को रिकॉर्ड खोजने के लिए तालिका में सभी पंक्तियों को स्कैन करना पड़ता है।
SQL सर्वर में दो प्रकार के इंडेक्स होते हैं: क्लस्टर्ड और नॉन-क्लस्टर्ड। क्लस्टर्ड और नॉन-क्लस्टर्ड इंडेक्स के बीच अंतर का पता लगाएं और वे महत्वपूर्ण क्यों हैं।
SQL सर्वर में क्लस्टर्ड इंडेक्स
संकुल सूचकांक में, डेटा पंक्तियों को भौतिक रूप से मुख्य मूल्य के आधार पर क्रमबद्ध तरीके से संग्रहीत किया जाता है। चूंकि सूचकांक में तालिका शामिल है और यह केवल एक क्रम में पंक्तियों को व्यवस्थित कर सकता है, आप प्रति तालिका केवल एक संकुल सूचकांक बना सकते हैं।
जबकि अनुक्रमित पंक्तियों को तेजी से एक सीमा में पुनर्प्राप्त करते हैं,
INSERT और UPDATE स्टेटमेंट धीमा हो सकता है क्योंकि क्वेरी ऑप्टिमाइज़र इंडेक्स को तब तक स्कैन करता है जब तक कि वह लक्ष्य इंडेक्स नहीं पाता।SQL सर्वर में गैर-क्लस्टर्ड इंडेक्स
एक गैर-संकुलित सूचकांक में प्रमुख मान होते हैं जिनकी प्रविष्टि एक सूचक होती है जिसे पंक्ति लोकेटर कहा जाता है। क्लस्टर्ड टेबल (क्लस्टर्ड इंडेक्स वाली टेबल) के लिए, पॉइंटर क्लस्टर्ड इंडेक्स में एक कुंजी को इंगित करता है जो बदले में तालिका में पंक्ति को इंगित करता है। क्लस्टर्ड इंडेक्स के बिना पंक्तियों के लिए, सूचक सीधे तालिका पंक्ति पर इंगित करता है।
SQL सर्वर में क्लस्टर्ड इंडेक्स कैसे बनाएं
जब आप एक प्राथमिक कुंजी के साथ एक तालिका बनाते हैं, तो SQL सर्वर स्वचालित रूप से उस प्राथमिक कुंजी के आधार पर एक संकुल अनुक्रमणिका कुंजी बनाता है। यदि आपके पास प्राथमिक कुंजी नहीं है, तो आप क्लस्टर इंडेक्स कुंजी बनाने के लिए निम्न कथन निष्पादित कर सकते हैं।
बनाएं संकुल अनुक्रमणिका <अनुक्रमणिकानाम>
मेज पर <तालिका नाम>(आम नाम)
इस कथन में, आप इंडेक्स का नाम निर्दिष्ट कर रहे हैं, इसे बनाने के लिए तालिका का नाम और इंडेक्स में उपयोग करने के लिए कॉलम नाम।
यदि आप किसी तालिका में प्राथमिक कुंजी जोड़ते हैं जिसमें पहले से ही एक संकुल अनुक्रमणिका है, तो SQL सर्वर इसके साथ एक गैर-संकुलित अनुक्रमणिका बनाएगा।
क्लस्टर्ड इंडेक्स बनाने के लिए जिसमें प्राथमिक कुंजी कॉलम शामिल नहीं है, आपको पहले प्राथमिक कुंजी बाधा को छोड़ना होगा।
उपयोगडेटाबेस का नाम
ऑल्टरमेज तालिका नाम
बूँदबाधा pk_name
जाना
प्राथमिक कुंजी बाधाओं को हटाने से क्लस्टर्ड इंडेक्स भी हटा दिया जाता है जिससे आप एक कस्टम बना सकते हैं।
SQL सर्वर में एक गैर-क्लस्टर्ड इंडेक्स कैसे बनाएं
एक गैर-संकुलित सूचकांक बनाने के लिए, निम्नलिखित कथन का उपयोग करें।
बनाएंअनुक्रमणिका <अनुक्रमणिकानाम>
मेज पर <तालिका नाम>(आम नाम)
आप इस तरह NONCLUSTERED कीवर्ड का भी उपयोग कर सकते हैं:
बनाएं [गैर-क्लस्टर्ड] अनुक्रमणिका <अनुक्रमणिकानाम>
मेज पर <तालिका नाम>(आम नाम)
यह कथन आपके द्वारा निर्दिष्ट तालिका में एक गैर-क्लस्टर इंडेक्स बनाता है और आपके द्वारा इंगित कॉलम शामिल करता है।
यदि आप चाहें, तो आप स्तंभों को आरोही (एएससी) या अवरोही (डीईएससी) क्रम में क्रमबद्ध कर सकते हैं।
बनाएं [गैर-क्लस्टर्ड] अनुक्रमणिका <अनुक्रमणिकानाम>
मेज पर <तालिका नाम>(कॉलम_नाम एएससी/डीईएससी)
आपको कौन सा इंडेक्स चुनना चाहिए?
क्लस्टर्ड और नॉन-क्लस्टर्ड इंडेक्स दोनों ही क्वेरीिंग समय में सुधार करते हैं। यदि आपके अधिकांश प्रश्न तालिका में कई स्तंभों पर चयन संचालन हैं, तो संकुल अनुक्रमणिकाएँ तेज़ होती हैं। हालाँकि, INSERT या UPDATE ऑपरेशंस के लिए, गैर-क्लस्टर्ड इंडेक्स तेज़ होते हैं क्योंकि क्वेरी ऑप्टिमाइज़र सीधे इंडेक्स से कॉलम का पता लगा सकता है।
जैसा कि आप देख सकते हैं, ये इंडेक्स सबसे अच्छा काम करते हैं विभिन्न एसक्यूएल प्रश्न. इसलिए अधिकांश SQL डेटाबेस नियमित रूप से अपडेट किए जाने वाले कॉलम के लिए कम से कम एक क्लस्टर्ड इंडेक्स और नॉन-क्लस्टर्ड इंडेक्स होने से लाभान्वित होंगे।
SQL सर्वर में इंडेक्स का महत्व
क्लस्टर्ड और नॉन-क्लस्टर्ड इंडेक्स उच्च क्वेरी प्रदर्शन की ओर ले जाते हैं। जब आप कोई क्वेरी चलाते हैं, तो क्वेरी ऑप्टिमाइज़र किसी पंक्ति के संग्रहण स्थान के लिए अनुक्रमणिका को स्कैन करता है और फिर उस स्थान से जानकारी प्राप्त करता है। तालिका में सभी पंक्तियों को स्कैन करने से यह बहुत तेज़ है।
आप गैर-संकुल अनुक्रमणिका का उपयोग उन स्तंभों के लिए एक गैर-संकुलित अनुक्रमणिका बनाकर बुकमार्क लुकअप गतिरोधों को हल करने के लिए भी कर सकते हैं, जिनमें एक्सेस शामिल है।