क्लस्टर्ड इंडेक्स डिस्क पर डेटा के क्रम को नियंत्रित करते हैं। यह मुख्य कारणों में से एक है कि आमतौर पर यह अनुशंसा की जाती है कि आप क्लस्टर इंडेक्स के रूप में कार्य करने के लिए हमेशा बढ़ती पूर्णांक कुंजी सेट अप करें। इस तरह जैसे-जैसे तालिका में अधिक डेटा जोड़ा जाता है, वे वर्तमान में मौजूद डेटा के अंत में जुड़ जाते हैं।
यदि यह एक स्वत:बढ़ती संख्या नहीं है और नई पंक्तियों में ऐसे मान हो सकते हैं जिन्हें मौजूदा मानों के बीच कहीं ऑर्डर किया जाएगा, तो SQL सर्वर मूल रूप से डेटा को उस डिस्क पर धक्का देगा जहां यह संबंधित है (क्लस्टर इंडेक्स कुंजी मानों के क्रम को बनाए रखने के लिए), विखंडन उत्पन्न करता है और संभावित रूप से गंभीर ओवरहेड क्योंकि आईओ डेटाबेस को और धीमा कर देता है।
मुझे संदेह है कि आपको अपने UserRecord मानों के साथ भी यही समस्या है।
तो मैं क्या करूँगा, प्रत्येक तालिका में एक अलग क्लस्टर ऑटोइनक्रिसिंग प्राथमिक कुंजी जोड़ें और जहां आवश्यक हो, अपने एफके संदर्भों और प्रश्नों को फिर से काम करें।