जैसा कि अन्य ने कहा है, संख्यात्मक अनुक्रमों की तुलना में GUID का उपयोग करके एक प्रदर्शन हिट है। जिसके अनुसार, Oracle 8i कि कच्चे बराबर प्रदान करता है के बाद से नाम "SYS_GUID()" उपलब्ध कार्यप्रणाली है:
SQL> SELECT SYS_GUID() FROM DUAL;
SYS_GUID()
--------------------------------
248AACE7F7DE424E8B9E1F31A9F101D5
एक समारोह एक फ़ॉर्मेट GUID वापस जाने के लिए बनाया जा सकता है:
CREATE OR REPLACE FUNCTION GET_FORMATTED_GUID RETURN VARCHAR2 IS guid VARCHAR2(38) ;
BEGIN
SELECT SYS_GUID() INTO guid FROM DUAL ;
guid :=
'{' || SUBSTR(guid, 1, 8) ||
'-' || SUBSTR(guid, 9, 4) ||
'-' || SUBSTR(guid, 13, 4) ||
'-' || SUBSTR(guid, 17, 4) ||
'-' || SUBSTR(guid, 21) || '}' ;
RETURN guid ;
END GET_FORMATTED_GUID ;
/
इस प्रकार एक विनिमेय लौटने स्ट्रिंग:
SQL> SELECT GET_FORMATTED_GUID() FROM DUAL ;
GET_FORMATTED_GUID()
--------------------------------------
{15417950-9197-4ADD-BD49-BA043F262180}
सावधानी का एक नोट किया जाना चाहिए कि कुछ ओरेकल प्लेटफार्मों GUIDs +०१२३६५०३२९५० के समान है लेकिन अभी भी अद्वितीय मान Steven Feuerstein द्वारा।
स्रोत
2009-10-07 21:21:27
ब्लॉग केवल एक अनुक्रम के साथ काम करने के लिए लगाए गए डीबी से उत्पन्न एक guid के साथ काम करने की तुलना करता है, लेकिन मुझे आश्चर्य है कि .NET कोड से उत्पन्न guids के साथ काम करते समय प्रदर्शन कैसे होता है ??? – gillyb
उन्होंने उत्तर दिए जाने के बाद दूसरे पैराग्राफ में स्पष्टीकरण जोड़ा। इंडेक्स के आकार के कारण डालने पर कुछ प्रदर्शन हिट होने की संभावना है और तथ्य यह है कि इंडेक्स को नेट ग्रिड के यादृच्छिक पहलू के कारण विभाजित किया जाएगा। यदि देशी ओरेकल फ़ंक्शन का उपयोग किया जाता है तो SQL सर्वर में फ़ंक्शन के समान होने से बचने के लिए उन्हें अनुक्रमिक रूप से व्यवस्थित किया जाता है।स्रोत के साथ संक्षिप्त उत्तर के लिए – Turnkey
+1, लेकिन 'डिफ़ॉल्ट SYS_GUID() 'का उद्देश्य क्या है? मैंने लेख को स्किम किया, और यह स्पष्ट नहीं है कि वह हिस्सा क्या है। – zarose