मुझे पता है कि इस प्रकार का प्रश्न बहुत अधिक आता है, लेकिन मुझे अभी तक इस निर्णय लेने में मदद करने के लिए किसी भी आकर्षक तर्क को पढ़ना नहीं है। कृपया मेरा साथ दें!
मेरे पास एक विशाल डेटाबेस है - यह प्रति दिन लगभग 10,000,000 रिकॉर्ड बढ़ता है। डेटा संबंधपरक है, और प्रदर्शन कारणों से मैं तालिका कॉपी के साथ लोड करता हूं। इस कारण से, मुझे पंक्तियों के लिए कुंजी जनरेट करने की आवश्यकता है, और एक पहचान कॉलम पर भरोसा नहीं किया जा सकता है।
64-बिट पूर्णांक - एक बिगिंट - मेरे उपयोग के लिए पर्याप्त चौड़ा है, लेकिन विशिष्टता की गारंटी देने के लिए, मुझे मेरे लिए अपनी आईडी बनाने के लिए एक केंद्रीकृत जनरेटर की आवश्यकता है। मेरे पास वर्तमान में ऐसी जनरेटर सेवा है जो एक सेवा को एक्स अनुक्रम संख्या आरक्षित करने की अनुमति देती है और कोई टक्कर की गारंटी नहीं देती है। हालांकि, इसका एक परिणाम यह है कि मेरे पास मौजूद सभी सेवाएं इस एक केंद्रीकृत जनरेटर पर निर्भर हैं, और इसलिए मैं सीमित हूं कि मैं अपने सिस्टम को कैसे वितरित कर सकता हूं और अन्य निर्भरता (जैसे नेटवर्क एक्सेस की आवश्यकता) के बारे में खुश नहीं हूं इस डिजाइन द्वारा। यह अवसर पर एक समस्या रही है।
अब मैं अनुक्रमिक GUIDs को अपनी प्राथमिक कुंजी के रूप में उपयोग करने पर विचार कर रहा हूं (SQL में बाहरी रूप से उत्पन्न)। जहाँ तक मैं अपने स्वयं के परीक्षण से पता लगाने में सक्षम रहा हूँ, इनका एकमात्र दोष एक व्यापक डेटा प्रकार का डिस्क स्थान ओवरहेड है (जो अनुक्रमणिका में उनके उपयोग से बढ़ा है)। मैंने बिग प्रदर्शन विकल्प की तुलना में क्वेरी के प्रदर्शन में कोई भी सुस्ती नहीं देखी है। BULK COPY के साथ टेबल को लोड करना थोड़ा धीमा है, लेकिन ज्यादा नहीं। मेरे GUID- आधारित सूचकांक मेरे अनुक्रमिक GUID कार्यान्वयन के लिए खंडित नहीं हो रहे हैं।
मूल रूप से, जो मैं जानना चाहता हूं वह यह है कि यदि कोई अन्य विचार है जिसकी मैंने अनदेखी की है। फिलहाल, मैं छलांग लगाने और GUID का उपयोग शुरू करने के लिए इच्छुक हूं। मैं डेटाबेस विशेषज्ञ नहीं हूं, इसलिए मैं वास्तव में किसी भी मार्गदर्शन की सराहना करता हूं।