sql server - good/doesn't matter/bad to include Primary Key in covering index? -


है अच्छा या कोई फर्क नहीं पड़ता या बुरी को कवर सूचकांक में प्राथमिक कुंजी को शामिल करने के लिए ??

  नॉनक्लाइस्टर्ड इंडेक्स सूचकांक_नाम_यहाँ पर dbo.table_name_here (column_to_index_here) शामिल करें (primary_key_column, other_column_here) के साथ (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = बंद, - & lt; SSMS से डिफ़ॉल्ट कबाड़ ALLOW_ROW_LOCKS = चालू, ALLOW_PAGE_LOCKS = चालू) पर [प्राथमिक] जीओ   

मैं सोच रहा हूं कि इससे कोई फर्क नहीं पड़ता, क्योंकि पीके होगा

संपादित करें - स्पष्ट करने के लिए।
मेरा primary_key_column क्लस्टर्ड है, लेकिन आप जानकारी दे सकते हैं / जानकारी दे सकते हैं जब यह isn '

मैं dbo.table_name_here पर column_to_index_here स्तंभ में शामिल हो जाएगा और फिर primary_key_column <पर अन्य तालिकाओं में शामिल हो जाएगा < / Code> और other_column_here

यदि आप cl आपके पीके पर उतावली, फिर यह कोई फर्क नहीं पड़ता एसक्यूएल सर्वर इस पर ध्यान नहीं देगा क्योंकि सभी गैर-क्लस्टर अनुक्रमित उस परिभाषा के हिस्से के रूप में उस पंक्ति के संकुल सूचक कुंजी को समाहित करते हैं।

यह सूचकांक में किसी भी अतिरिक्त स्थान का उपयोग नहीं करेगा, लेकिन इसे शामिल करने के लिए बेमानी है परिभाषा में।

यदि आपके पीके को आपके क्लस्टर किए गए इंडेक्स में शामिल नहीं किया गया है, तो केवल इसे शामिल करें यदि आपको उस फ़ील्ड को उसी प्रश्न के एक भाग के रूप में पुनः प्राप्त करने की आवश्यकता होगी जो सूचकांक का उपयोग करता है।

यह भी ध्यान में रखें कि जब आप एक सूचकांक में एक फ़ील्ड शामिल करें , यह गैर-पत्ती नोड्स में नहीं है, अर्थात उस मान पर अनुक्रमणिका को सॉर्ट नहीं किया जाता है।

Comments