मैं इस विचार की कुछ पुष्टि के बाद हूं कि यदि कोई एक है तो एक खराब प्रदर्शन करने वाले डेटाबेस या बेहतर सुझाव को ठीक करने के लिए। हमेशा बेहतर सुझावों के लिए खुला।
मेरे पास एक बहुत बड़ा डेटाबेस है (20+ मिलियन रिकॉर्ड प्रतिदिन लगभग 1/2 मिलियन से बढ़ रहा है) जो GUID को PK के रूप में उपयोग कर रहे हैं।
मेरे हिस्से पर एक निगरानी लेकिन पीके SQL सर्वर पर क्लस्टर किया गया है और प्रदर्शन समस्याओं का कारण बन रहा है।
एक गाइड का कारण - यह डेटाबेस 150 अन्य डेटाबेस के साथ आंशिक रूप से सिंक्रनाइज़ है इसलिए पीके को अद्वितीय होने की आवश्यकता है। सिंक्रनाइज़ेशन SQL सर्वर द्वारा प्रबंधित नहीं किया जाता है, बल्कि एक कस्टम प्रक्रिया का निर्माण होता है जो सिस्टम की आवश्यकताओं के लिए डेटा को सिंक में रखता है - यह सब उस GUID पर आधारित है।
150 दूरस्थ डेटाबेस में से प्रत्येक केंद्रीय SQL डेटाबेस में संग्रहीत के रूप में पूर्ण डेटा संग्रहीत नहीं करता है। वे केवल उन डेटा का एक सबसेट संग्रहीत करते हैं जिनकी उन्हें वास्तव में आवश्यकता होती है, और डेटा की आवश्यकता उनके लिए अद्वितीय नहीं होती है (150 डेटाबेस में से 10 में अन्य साइटों के डेटाबेस से कुछ समान रिकॉर्ड हो सकते हैं उदाहरण के लिए - वे साझा करते हैं)। इसके अलावा - डेटा वास्तव में दूरस्थ साइटों पर उत्पन्न होता है - केंद्रीय बिंदु पर नहीं - इसलिए GUIDs की आवश्यकता।
केंद्रीय डेटाबेस का उपयोग न केवल सब कुछ सिंक में रखने के लिए किया जाता है, बल्कि 3000 + उपयोगकर्ताओं के प्रश्नों को उस बहुत बड़े खंडित डेटाबेस के खिलाफ निष्पादित किया जाएगा। शुरुआती परीक्षण में यह एक बड़ी समस्या है।
सौभाग्य से हम अभी तक जीवित नहीं हैं - इसलिए मैं बदलाव कर सकता हूं और आवश्यकता होने पर चीजों को ऑफलाइन ले सकता हूं जो कम से कम कुछ है।
दूरस्थ डेटाबेस का प्रदर्शन कोई समस्या नहीं है - डेटा सबसेट बहुत छोटा है और डेटाबेस आमतौर पर कुल आकार में 1GB से ऊपर कभी नहीं मिलता है। अभिलेखों को मुख्य प्रणाली में वापस नियमित रूप से खिलाया जाता है और छोटे बीडी से निकाल दिया जाता है जब आवश्यकता नहीं होती है।
केंद्रीय डीबी का प्रदर्शन जो सभी रिकॉर्डों का रक्षक है, वह कई रिकॉर्ड्स के लिए एक प्राथमिक कुंजी के रूप में क्लस्टर किए गए GUID के कारण - बहुत ही कम है। सूचकांक विखंडन चार्ट से दूर है।
इसलिए - प्रदर्शन के मुद्दे को ठीक करने के लिए मेरे विचार एक नया कॉलम बनाने के लिए है - अनसाइन्ड बिज़ेंट आइडेंटिटी (1,1) और फिर टेबल बिगन कॉलम के क्लस्टर्ड पीके को बदलें।
मैं GUID फ़ील्ड पर एक विशिष्ट नॉन क्लस्टर्ड इंडेक्स बनाऊंगा जो प्राथमिक कुंजी थी।
छोटे दूरस्थ 150 डेटाबेस को सेंट्रल SQL सर्वर डेटाबेस पर नए पीके के बारे में जानने की आवश्यकता नहीं है - इसका शुद्ध रूप से डेटाबेस में डेटा को व्यवस्थित करने और खराब प्रदर्शन और विखंडन को रोकने के लिए उपयोग किया जाएगा।
क्या यह काम करेगा और केंद्रीय एसक्यूएल डेटाबेस के प्रदर्शन में सुधार करेगा और भविष्य के सूचकांक विखंडन नरक (निश्चित रूप से एक हद तक) को रोक देगा? या क्या मुझे यहाँ बहुत कुछ याद आया है जो कूद कर मुझे काट रहा है और इससे भी अधिक दुःख का कारण है?
int
4255 दिनों (11.5 वर्ष) में समाप्त हो जाएगा । अगर उसने ऐसा किया, तो वह आपको केवल 11.5 साल में दोषी