2010-04-07 15 views
5

के लिए अनुक्रमिक (कंघी) GUIDs हम this post में अनुक्रमित अनुक्रमिक ग्रिड एल्गोरिदम के लिए यादृच्छिक-आश guid जनरेटर से C# Guid.NewGuid() यादृच्छिक-आश guid जनरेटर से स्विच करने की प्रक्रिया में हैं। हालांकि यह एमएस एसक्यूएल सर्वर के लिए अच्छी तरह से काम करता प्रतीत होता है, मैं ओरेकल डेटाबेस के प्रभावों के बारे में अनिश्चित हूं, जिसमें हम कच्चे (16) क्षेत्र में ग्रिड स्टोर करते हैं। क्या किसी के पास कोई अंतर्दृष्टि है कि यह एल्गोरिदम ओरेकल के साथ-साथ एमएस एसक्यूएल सर्वर के लिए अनुक्रमिक मार्गदर्शिका बनाने के लिए अच्छा होगा, या यदि एक अलग संस्करण का उपयोग किया जाना चाहिए।ओरेकल

धन्यवाद!

उत्तर

2

कच्चे (16) का उपयोग GUID के लिए एक उचित डेटा प्रकार प्रतीत होता है। कच्चे डेटाटाइप के लिए अधिकतम आकार 2000 बाइट्स है और ओरेकल 9आई, 10 जी और 11 में समर्थित है।

GUID उत्पन्न करने के लिए एक एसक्यूएल फ़ंक्शन भी है, इसे SYS_GUID कहा जाता है। देख प्रलेखन यहाँ>http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/functions153.htm

आप इस लेख में दिलचस्पी हो सकती है ->http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html

+0

आपके उत्तर के लिए धन्यवाद। हालांकि, मैं इसके बाद क्या कर रहा हूं यह नहीं है कि कच्चे ओरेकल में ग्रिड के लिए एक अच्छा डेटा प्रकार है, लेकिन यदि प्रश्न में एल्गोरिदम ओरेकल में अनावश्यक सूचकांक विखंडन का कारण बनता है, भले ही यह एमएस एसक्यूएल सर्वर के लिए एक अच्छा विकल्प प्रतीत होता है। इसके अलावा, मुझे क्लाइंट पर अपने guids जेनरेट करने की ज़रूरत है, इसलिए SYS_GUID फ़ंक्शन थोड़ा सा मददगार होगा। – Eyvind

+0

अनावश्यक सूचकांक विखंडन क्या है? निश्चित रूप से संभव डेटा के पूरे कमरे के माध्यम से GUID फैल जाएगा (खंडित)। क्या GUID के लिए है। डेटा का विखंडन GUID एल्गोरिदम की अंतर्निहित संपत्ति है, जिसे डेटाबेस को संभालना होता है, भले ही यह एसक्यूएल-सर्वर या ऑरैकल हो। इंडेक्स कार्यान्वयन इसे संभाल सकता है, देखें -> http://en.wikipedia.org/wiki/B-tree –

+0

विचार एल्गोरिदम का उपयोग करना है जो मानक अनुक्रमित संस्करण की बजाय * अनुक्रमिक * guids उत्पन्न करता है। – Eyvind

1

जब एक सूचकांक ब्लॉक एक और प्रवेश के लिए 'भी भरा' है, यह विभाजन है।

ओरेकल के दो पथ हैं, जो 'अनुक्रमिक' शैली मानों के लिए अनुकूलित हैं और एक 'यादृच्छिक' प्रकार मानों के लिए अनुकूलित है। यदि नई प्रविष्टि इंडेक्स के दाएं-सबसे अंत में जा रही है तो आपको 90-10 विभाजन मिल जाएगा। यदि यह बीच में कहीं है, तो आपको 50-50 मिलते हैं। यदि आप इंडेक्स में "नए" मान एकत्रित करना चाहते हैं तो अनुक्रमिक मान उपयोगी है। यदि आप उन्हें बिखरे हुए चाहते हैं (उदाहरण के लिए 'हॉट' ब्लॉक पर विवाद से बचने के लिए), तो एक यादृच्छिक मान उपयोगी होता है।

क्या ओरेकल के लिए तकनीक 'अच्छा' है, इस पर निर्भर करता है कि आप किस समस्या को हल करने की कोशिश कर रहे हैं।