15

मेरे सहकर्मियों में से एक इस धारणा के तहत है कि SQL सर्वर 2008 में किसी तालिका में एक अनुक्रमणिका जोड़ते समय पीके की अनुक्रमणिका उस इंडेक्स में भी जोड़ दी जाती है। इसलिए यदि आप एक व्यापक प्राथमिक कुंजी का उपयोग कर रहे हैं तो उस कुंजी को नई अनुक्रमणिका में भी शामिल किया जाएगा जो पीके पर इंडेक्स के लिए पहले से भुगतान किए गए जुर्माना के ऊपर और उससे ऊपर की गई डिस्क स्पेस को बढ़ा रहा है। मैंने यह नहीं सुना था कि पहले और मेरी खोज अब तक खाली हो रही है।एसक्यूएल सर्वर इंडेक्स प्राथमिक कुंजी शामिल हैं?

उम्मीद है कि कोई यहां मुझे प्रासंगिक दस्तावेज़ों पर इंगित कर सकता है ताकि यह पुष्टि या अस्वीकार कर सके। कृप्या?

उत्तर

27

आपका सहकर्मी "क्लस्टरर्ड इंडेक्स कुंजी" के साथ "प्राथमिक कुंजी" को भंग कर रहा है (संभवतः क्योंकि डिफ़ॉल्ट रूप से nonclustered कीवर्ड निर्दिष्ट किए बिना एक ढेर पर बनाया गया पीके तालिका के क्लस्टर्ड इंडेक्स बन जाएगा)।

It is true कि क्लस्टर्ड इंडेक्स वाली तालिका पर क्लस्टरर्ड इंडेक्स कुंजी का मूल्य सभी गैर क्लस्टर इंडेक्स में पंक्ति लोकेटर के रूप में कार्य करने के लिए कॉलम (ओं) के रूप में जोड़ा जाएगा। (हालांकि स्तंभ (ओं) को दो बार में जोड़ा नहीं जाएगा यदि वे पहले से ही गैर क्लस्टर इंडेक्स परिभाषा का हिस्सा हैं)।

आदर्श संकुल सूचकांक कुंजी है

  • अद्वितीय (कार्य करना के रूप में एक पंक्ति लोकेटर यह अद्वितीय होना चाहिए - एसक्यूएल सर्वर अगर यह नहीं है में एक uniquifier जोड़ देगा)
  • संकीर्ण (के रूप में यह गयी है सभी गैर क्लस्टर सूचकांकों में)
  • स्थिर() कई अलग अलग स्थानों में मान अपडेट आने से रोकें
  • बढ़ती
+0

हाँ buste डी एसक्यूएल सर्वर आंतरिक शेल्फ बंद पुस्तक। आरटीएफएम हमेशा मदद करता है मैं इसे कभी नहीं करता हूं। वैसे भी यह प्राथमिक/क्लस्टर कुंजी के रूप में GUID बनाम INT का हिस्सा था। लौ जल रही! – Grummle

संबंधित मुद्दे