सामान्य तौर पर, मेरी अनुक्रमण रणनीति कुछ इस तरह होगी (मैं अभी के लिए विशेष रूप से SQL सर्वर का उपयोग कर रहा हूं - आवश्यकतानुसार अपने स्वयं के डेटाबेस सिस्टम के अनुकूल):
-
एक अच्छा चुनें क्लस्टरिंग कुंजी - GUID नहीं,
VARCHAR(250)
. नहीं या कुछ और - एक अच्छा क्लस्टरिंग कुंजी संकीर्ण, अद्वितीय, स्थिर, लगातार बढ़ती . है -INT IDENTITY
जैसा कुछ पूर्ण है। इसे आपकी संकुल प्राथमिक कुंजी बनाता है -> आपको टेबल पर आपकी पहली अनुक्रमणिका देता है -
किसी अन्य तालिका में विदेशी कुंजी के रूप में उपयोग किए जा रहे किसी भी कॉलम के लिए - एक अनुक्रमणिका जोड़ें। यह या तो सिंगल कॉलम इंडेक्स हो सकता है - या यह एक कंपाउंड इंडेक्स हो सकता है - जो भी आपके मामले के लिए सबसे अच्छा काम करता है। यह महत्वपूर्ण है कि विदेशी कुंजी कॉलम प्रथम . हो उस अनुक्रमणिका में कॉलम (यदि आप एक मिश्रित अनुक्रमणिका का उपयोग कर रहे हैं) - अन्यथा,
JOIN
के लाभ या संदर्भात्मक अखंडता की जाँच के लिए आपके सिस्टम के लिए उपलब्ध नहीं होगा
और अभी के लिए बस इतना ही।
फिर:अपना सिस्टम चलाएं - निरीक्षण करें, और मापें - आधार रेखा स्थापित करें। क्या ऐप काफी तेज है? अगर हाँ -> आपका काम हो गया - घर जाओ और अपने खाली समय का आनंद लो।
यदि नहीं:तो डेटा और संकेत एकत्र करना शुरू करें कि ऐप पर्याप्त तेज़ क्यों नहीं है। देखो उदा। SQL सर्वर में DMV जैसी चीज़ें जो आपको सबसे खराब प्रदर्शन करने वाली क्वेरी के बारे में बताती हैं, या अनुपलब्ध अनुक्रमणिका DMV . उनका विश्लेषण करें। देखें कि आप क्या सुधार कर सकते हैं। एक बार में एक अनुक्रमणिका जोड़ें और फिर से:निरीक्षण करें, मापें, अपनी आधार रेखा से तुलना करें।
यदि आपके पास सुधार है -> उस सूचकांक को जगह पर छोड़ दें और यह माप आपकी नई आधार रेखा है। कुल्ला और तब तक दोहराएं जब तक आप (और आपके उपयोगकर्ता) ऐप के प्रदर्शन से खुश न हों (और तब घर जाओ और अपने समय का आनंद लो)।
SQL सर्वर में ओवर-इंडेक्सिंग बदतर हो सकता है कोई अनुक्रमणिका नहीं होने की तुलना में। शुरू करने के लिए बहुत सारे सूचकांकों के साथ शुरुआत न करें! केवल अच्छा establish स्थापित करें संकुलित PK और विदेशी कुंजी गैर-संकुल सूचकांक - बस इतना ही - फिर उस चक्र को देखें, मापें, अनुकूलित करें और दोहराएं।