इंडेक्स से निपटने के दौरान कुछ अवधारणाएं और शब्द हैं जिन्हें समझना महत्वपूर्ण है। खोज, स्कैन, और लुकअप कुछ ऐसे तरीके हैं, जिन्हें इंडेक्स का उपयोग चुनिंदा कथनों के माध्यम से किया जाएगा। प्रमुख स्तंभों की चयनात्मकता यह निर्धारित करने के लिए अभिन्न है कि सूचकांक कितना प्रभावी हो सकता है।
जब SQL सर्वर क्वेरी ऑप्टिमाइज़र यह निर्धारित करता है कि आपके द्वारा अनुरोधित डेटा खोजने का सबसे अच्छा तरीका एक सीमा के भीतर स्कैन करके है। आम तौर पर ऐसा होता है जब किसी सूचकांक द्वारा एक क्वेरी को "कवर" किया जाता है, जिसका अर्थ है कि खोज की भविष्यवाणी सूचकांक कुंजी में है और प्रदर्शित कॉलम कुंजी में या शामिल हैं। एक स्कैन तब होता है जब SQL सर्वर क्वेरी ऑप्टिमाइज़र निर्धारित करता है कि डेटा को खोजने का सबसे अच्छा तरीका पूरे सूचकांक को स्कैन करना है और फिर परिणामों को फ़िल्टर करना है। आम तौर पर एक लुकअप तब होता है जब कोई इंडेक्स सभी अनुरोधित कॉलमों को शामिल नहीं करता है, या तो इंडेक्स कुंजी में या शामिल किए गए कॉलम में। क्वेरी ऑप्टिमाइज़र तब अन्य अनुरोधित कॉलम को "लुकअप" करने के लिए या तो संकुल कुंजी (क्लस्टर्ड इंडेक्स के विरुद्ध) या RID (ढेर के खिलाफ) का उपयोग करेगा।
आमतौर पर, एक छोटे डेटा सेट को भौतिक रूप से क्वेरी करने के कारण, स्कैन की तुलना में ऑपरेशन अधिक कुशल होते हैं। ऐसी परिस्थितियां हैं जहां यह मामला नहीं है, जैसे कि एक बहुत छोटा प्रारंभिक डेटा सेट, लेकिन यह आपके प्रश्न के दायरे से परे है।
अब, आपने पूछा कि यह निर्धारित करने के लिए कि सूचकांक कितना प्रभावी है, और ध्यान में रखने के लिए कुछ चीजें हैं। एक संकुल सूचकांक के प्रमुख स्तंभों को क्लस्टरिंग कुंजी कहा जाता है। यह इस प्रकार है कि रिकॉर्ड्स को एक अनुक्रमणिका सूचकांक के संदर्भ में अद्वितीय बनाया जाता है। सभी गैर-अनुक्रमित अनुक्रमितों में डिफ़ॉल्ट रूप से संकुल कुंजी शामिल होगी, ताकि आवश्यकता पड़ने पर लुकअप किया जा सके। सभी संबंधित डीएमएल स्टेटमेंट के लिए सभी इंडेक्स डाले जाएंगे, अपडेट किए जाएंगे या हटाए जाएंगे। कहा जा रहा है कि, इंसर्ट हिट के खिलाफ चयन स्टेटमेंट्स में इंसर्ट हिट को बैलेंस करना, डिलीट करना और स्टेटमेंट अपडेट करना सबसे अच्छा है।
यह निर्धारित करने के लिए कि कोई इंडेक्स कितना प्रभावी है, आपको अपने इंडेक्स कीज़ की चयनात्मकता निर्धारित करनी चाहिए। चयनात्मकता को विभिन्न रिकॉर्डों के कुल रिकॉर्ड के प्रतिशत के रूप में परिभाषित किया जा सकता है। यदि मेरे पास 100 कुल रिकॉर्ड के साथ एक [व्यक्ति] टेबल है और [पहले_नाम] कॉलम में 90 अलग-अलग मूल्य हैं, तो हम कह सकते हैं कि [पहला_नाम] कॉलम 90% चयनात्मक है। उच्च चयनात्मकता, सूचकांक कुंजी जितनी अधिक कुशल होगी। चयनात्मकता को ध्यान में रखते हुए, अपने सबसे चयनात्मक कॉलम को अपनी इंडेक्स कुंजी में पहले रखना सबसे अच्छा है। मेरे पिछले [व्यक्ति] उदाहरण का उपयोग करते हुए, यदि हमारे पास [last_name] कॉलम था जो कि 95% चयनात्मक था? हम इंडेक्स कुंजी के रूप में [last_name], [first_name] के साथ एक इंडेक्स बनाना चाहेंगे।
मुझे पता है कि यह एक लंबा-चौड़ा जवाब था, लेकिन वास्तव में बहुत सारी चीजें हैं जो यह निर्धारित करती हैं कि एक सूचकांक कितना प्रभावी होगा, और बहुत सी चीजें आपको किसी भी प्रदर्शन लाभ के खिलाफ तौलना चाहिए।