जवाबों:
सांख्यिकी बस गतिशील मेटाडाटा का एक रूप है जो बेहतर निर्णय लेने में क्वेरी ऑप्टिमाइज़र की सहायता करता है। उदाहरण के लिए, यदि किसी तालिका में केवल एक दर्जन पंक्तियाँ हैं, तो लुकअप करने के लिए इंडेक्स में जाने का कोई मतलब नहीं है; आप हमेशा एक पूर्ण टेबल स्कैन करने से बेहतर होंगे। लेकिन अगर वही तालिका एक लाख पंक्तियों में बढ़ती है, तो आप संभवतः सूचकांक का उपयोग करना बेहतर होगा। लेकिन अगर आप उस तालिका को उस स्तंभ पर क्वेरी करते हैं, जिसमें केवल कुछ विशिष्ट मान हैं (जैसे कि यह "एम" या "एफ" युक्त "सेक्स" स्तंभ हो सकता है), तो वास्तव में एक एफटीएस बेहतर हो सकता है क्योंकि वह मामला है क्योंकि आप परिणाम सेट बनाने के लिए वैसे भी ब्लॉक को पुनः प्राप्त करने की आवश्यकता है। अब कहते हैं कि आपकी तालिका 99% "एम" है और केवल 1% "एफ" है, हमें एक मामले में एफटीएस या दूसरे में एक सूचकांक का उपयोग करना चाहिए। समान तालिका, समान क्वेरी, तालिका की सामग्री के आधार पर संभावित रूप से चार अलग-अलग क्वेरी योजनाएं। इस प्रकार की चीजें "आंकड़े" हैं और वे प्रत्येक डेटाबेस के लिए व्यक्तिगत हैं - यहां तक कि समान तालिका और सूचकांक संरचना वाले दो डेटाबेस में अलग-अलग आंकड़े होंगे।
सारांश में, एक आधुनिक डेटाबेस इंजन में क्वेरी ऑप्टिमाइज़ेशन दो प्रकार के होते हैं: एसक्यूएल (नियम-आधारित अनुकूलन, जैसे एक कंपाइलर आपके सी को और अधिक कुशल बनाने के लिए फिर से लिखता है) और डेटा का सही रास्ता चुनना (लागत-आधारित अनुकूलन) , जैसे जेआईटी कंपाइलर रनटाइम पर हॉटस्पॉट की पहचान करता है)। आपको केवल इस बारे में चिंता करने की ज़रूरत है यदि आप क्वेरी ऑप्टिमाइज़र को स्पष्ट रूप से गलत करते हुए स्पॉट करते हैं (उदाहरण के लिए एफटीएस चुनना जब आप जानते हैं कि एक इंडेक्स बेहतर होगा)।
इंडेक्स और / या कॉलम में मान के वितरण को ट्रैक करने के लिए उनका उपयोग क्वेरी ऑप्टिमाइज़र (MSDN पर श्वेतपत्र) द्वारा किया जाता है ।
आपकी एकमात्र चिंता नियमित रूप से अपडेट होने की होनी चाहिए : बस अपना सामान करने के लिए डीबी इंजन को छोड़ दें