मैं इस बात की जाँच करना पसंद करता हूं कि किस विषय की महारानी, किम्बर्ली ट्रिप को विषय पर कहना है:
मैं कारणों की एक जोड़ी के लिए क्लस्टरिंग कुंजी के लिए अपनी सिफारिश के साथ शुरू करने जा रहा हूं। पहला, यह एक आसान निर्णय है और दूसरा, यह निर्णय जल्दी करने से कुछ प्रकार के विखंडन को रोकने में मदद मिलती है। यदि आप कुछ प्रकार के बेस-टेबल विखंडन को रोक सकते हैं तो आप कुछ रखरखाव गतिविधियों को कम कर सकते हैं (जिनमें से कुछ, SQL Server 2000 में और इससे भी कम, SQL Server 2005 में) की आवश्यकता है कि आपकी तालिका ऑफ़लाइन हो। ठीक है, मैं बाद में सामान को फिर से बना दूंगा ....।
आइए उन प्रमुख चीजों से शुरू करें जिन्हें मैं एक क्लस्टरिंग कुंजी में देखता हूं:
* Unique
* Narrow
* Static
क्यों अनोखा?
क्लस्टरिंग कुंजी अद्वितीय होनी चाहिए क्योंकि क्लस्टरिंग कुंजी (जब एक मौजूद होती है) को सभी गैर-क्लस्टर किए गए अनुक्रमित से लुकअप कुंजी के रूप में उपयोग किया जाता है। उदाहरण के लिए किसी पुस्तक के पीछे एक इंडेक्स लें - यदि आपको वह डेटा ढूंढना है जो एक इंडेक्स एंट्री इंगित करता है - तो वह प्रविष्टि (इंडेक्स एंट्री) अद्वितीय होनी चाहिए अन्यथा, वह इंडेक्स प्रविष्टि वह होगी जिसे आप खोज रहे हैं ? इसलिए, जब आप क्लस्टर इंडेक्स बनाते हैं - तो यह अद्वितीय होना चाहिए। लेकिन, SQL सर्वर को इसकी आवश्यकता नहीं है कि आपकी क्लस्टरिंग कुंजी एक अद्वितीय स्तंभ पर बनाई गई है। आप इसे अपने पसंद के किसी भी कॉलम पर बना सकते हैं। आंतरिक रूप से, यदि क्लस्टरिंग कुंजी अद्वितीय नहीं है, तो SQL सर्वर डेटा में 4-बाइट पूर्णांक जोड़कर इसे "अद्वितीय" करेगा। इसलिए यदि क्लस्टर इंडेक्स किसी ऐसी चीज़ पर बनाया गया है जो अद्वितीय नहीं है, तो न केवल इंडेक्स निर्माण पर अतिरिक्त ओवरहेड है, इसमें वाइट डिस्क मोड है,
स्रोत: कभी-कभी बढ़ती हुई प्रमुख बहस - फिर से!