आंकड़े (जो कि एक सूचकांक का उपयोग किया जाना है या नहीं, यह निर्धारित करने में मदद करें) वास्तविक कॉलम मान पंक्तियों की संख्या को ध्यान में रखें, या यह प्रति 0 पंक्तियों की संख्या औसत का उपयोग करता है।एसक्यूएल सांख्यिकी और सूचकांक - वे कितने विस्तृत हैं?
मान लीजिए मेरे पास सक्रिय नामक एक बिट कॉलम वाला एक टेबल है जिसमें लाखों पंक्तियां हैं, लेकिन 99.99% झूठी पर सेट है। अगर मेरे पास इस कॉलम पर एक इंडेक्स है, तो सक्रिय = 1 की खोज करते समय एसक्यूएल को इंडेक्स का उपयोग करने के लिए पर्याप्त समझदार है, लेकिन सक्रिय = 0 की खोज करने पर कोई बात नहीं है।
एक और उदाहरण, यदि मेरे पास एक सारणी है जिसमें एक अनुक्रमित कॉलम के साथ 1,000,000 रिकॉर्ड हैं, जिसमें 10 के मूल्य प्रति पंक्तियों की औसत संख्या के साथ लगभग 50,000 अलग-अलग मान हैं, लेकिन फिर एक विशेष मूल्य जिसमें 500,000 पंक्तियां हैं। इस विशेष रिकॉर्ड की खोज करते समय सूचकांक उपयोगी नहीं हो सकता है, लेकिन किसी भी अन्य कोड की तलाश करते समय बहुत उपयोगी होगा।
लेकिन क्या यह विशेष मामला इंडेक्स की प्रभावशीलता को बर्बाद कर देता है।
धन्यवाद। इससे मदद मिलती है। यदि मैं सक्रिय = 0 और indexedValue = '1' का उपयोग करता हूं तो यह तालिका स्कैन करेगा जबकि सक्रिय = 1 और IndexValue = '1' अनुक्रमणिका का उपयोग करेगा। – sgmoore
बहुत अच्छा परीक्षण नहीं है। आपको निश्चित रूप से 'SELECT *' का उपयोग करना चाहिए, यह हमेशा 'COUNT (*)' के लिए अनुक्रमणिका का उपयोग करेगा –