2010-10-09 25 views
5

एसक्यूएल सर्वर 2005 में "कवर इंडेक्स" सुविधा शामिल है जो हमें मौजूदा गैर क्लस्टर इंडेक्स में शामिल करने के लिए एक से अधिक गैर कुंजी कॉलम चुनने की अनुमति देता है।संयुक्त गैर क्लस्टर इंडेक्स और कवरेज इंडेक्स

उदाहरण के लिए, मैं निम्नलिखित कॉलम है:

EmployeeID, DepartmentID, DesignationID, BranchID 

यहाँ दो परिदृश्य हैं:

  • EmployeeID क्लस्टर सूचकांक और शेष कॉलम (DepartmentID, DesignationID के साथ एक प्राथमिक कुंजी है , BranchID) गैर क्लस्टर सूचकांक (समग्र अनुक्रमणिका) के रूप में लिया जाता है।

  • EmployeeID क्लस्टर सूचकांक के साथ एक प्राथमिक कुंजी है और DepartmentID गैर DesignationID साथ सूचकांक क्लस्टर गैर क्लस्टर सूचकांक के लिए, BranchID कर रहे हैं " कॉलम शामिल है।"

उपरोक्त दो के बीच क्या अंतर है? यदि दोनों समान हैं तो "कवरिंग इंडेक्स" अवधारणा को पेश करने के लिए नया क्या है?

+0

संभव http://stackoverflow.com/questions/1307990/why-use-the-include-clause-when-creating-an-index साथ नकल के साथ एक nonclustered अनुक्रमणिका है –

उत्तर

3

अंतर यह है कि यदि पहले इंडेक्स में उसी विभाग आईडी के साथ दो पंक्तियां हैं तो उन्हें पदनाम और शाखा आईडी के उनके मूल्यों के आधार पर क्रमबद्ध किया जाएगा। दूसरे मामले में उन्हें एक दूसरे के सापेक्ष क्रमबद्ध नहीं किया जाएगा और सूचकांक में किसी भी क्रम में दिखाई दे सकता है।

क्या यह आपके आवेदन का मतलब के संदर्भ में:

  • एक क्वेरी जिस पर (DepartmentID, DesignationID) एक सूचकांक का उपयोग कर सकते सेकंड से भी पहले क्वेरी के साथ और अधिक कुशल हो सकता है।
  • पहले इंडेक्स का निर्माण अतिरिक्त सॉर्टिंग की आवश्यकता के कारण थोड़ा अधिक समय ले सकता है।
संबंधित मुद्दे