SQL Server: Clustered index on datetime, ASC or DESC -
यदि मेरे पास एक datetime फ़ील्ड पर एक संकलित अनुक्रमणिका के साथ एक SQL सर्वर तालिका है, जो DateTime.Now पर सेट है (सी # ) सम्मिलित करने से पहले, सूचकांक तालिका के पुनर्गठन से बचने के लिए आरोही या अवरोही होना चाहिए?
धन्यवाद
वास्तव में कोई फर्क नहीं पड़ता - लेकिन क्या समय-समय पर वास्तव में अद्वितीय होने की गारंटी है ?? मैं सिर्फ एक डेटटाइम पर एक क्लस्टरिंग इंडेक्स डालकर टालना चाहूंगा- मैं इसके बजाय INT पहचान या बड़ा पहचान का उपयोग करेगा, और डेटटाइम पर एक नियमित गैर-क्लस्टर इंडेक्स डालूंगा (चूंकि यह वास्तव में अद्वितीय होने की गारंटी नहीं है ...) < / P>
मार्क
पीएस: प्राथमिक कुंजी की तरह, एक संकलित कुंजी क्या होनी चाहिए पर सामान्य सहमति:
- अद्वितीय
- संभवतः संकीर्ण के रूप में
- स्थिर
- कभी भी बढ़ती
कॉलम (एस) जो क्लस्टेड कुंजी बनाते हैं (जिसमें 4- बाइट अनन्यफ़िफायर) हर गैर-संकुल सूचकांक में हर प्रविष्टि में जोड़ दिया जाता है - इसलिए आप जितना संभव हो उतना पतला रखना चाहते हैं।
पीएस 2: प्रत्येक गैर-क्लस्टर इंडेक्स में क्लस्टरिंग कुंजी (एस) को जोड़ दिया जाता है क्योंकि ऐसा तरीका है कि एसक्यूएल सर्वर पूरे पंक्तियों को पुनः प्राप्त कर लेगा, जब इसे गैर-क्लस्टर्ड इंडेक्स में खोज मान मिलेगा। डेटाबेस में पंक्ति का "स्थान" है, इसलिए बात करने के लिए। इसलिए, यह अद्वितीय और संकीर्ण होना चाहिए।
Comments
Post a Comment