سؤال

أنا قادم من SQL server العالم حيث كان لدينا uniqueidentifier.هل هناك معادلة في أوراكل ؟ هذا العمود سوف تكون في كثير من الأحيان الاستعلام ذلك الأداء هو المفتاح.

أنا إنشاء GUID في .صافي و سوف تمر إلى أوراكل.لعدة أسباب لا يمكن إنشاؤها من قبل شركة أوراكل لذا لا يمكن استخدام تسلسل.

هل كانت مفيدة؟

المحلول

CREATE table test (testguid RAW(16) default SYS_GUID() ) 

هذا بلوق درس الأداء النسبي.

نصائح أخرى

كما أن آخرين قد ذكر ، وهناك ضرب الأداء باستخدام Guid مقارنة رقمية متواليات.وقال أن هناك وظيفة اسمها "SYS_GUID()"متاحة منذ Oracle 8i التي توفر الخام أي ما يعادل:

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}

مذكرة من الحذر وينبغي أن بعض منصات أوراكل عودة مماثلة ولكن لا تزال فريدة من نوعها قيم Guid كما لوحظ من قبل ستيفن فويرشتاين ووديان.

إذا فهمت السؤال بشكل صحيح ، كنت ترغب في إنشاء معرف فريد عند إدراج صف في ديسيبل.
هل يمكن استخدام تسلسل أن تفعل هذا. الرابط هنا
مرة واحدة كنت قد أنشأت التسلسل الخاص بك يمكنك استخدامه مثل هذا:

INSERT INTO mytable (col1, col2) VALUES (myseq.NEXTVAL, 'some other data');

الخام(16) هو على ما يبدو يفضل يعادل بالنسبة uniqueidentifier MS SQL نوع.

GUIDs ليست كما تستخدم في أوراكل كما في MSSQL, ونحن نميل إلى حقل رقم (not null & المفتاح الأساسي) , تسلسل, و الزناد عن تضاف إلى ملء ذلك (على كل طاولة).

لا يوجد uniqueidentifier في أوراكل.

يمكنك تنفيذها بنفسك باستخدام الخام (نوع من الألم) أو شار.الأداء على الاستفسارات التي تنضم على شار مجال ستعاني (ربما تصل إلى 40%) بالمقارنة مع استخدام عدد صحيح.

إذا كنت تفعل توزيع/نسخ قواعد البيانات ضرب أداء يستحق ذلك.وإلا مجرد استخدام عدد صحيح.

الممارسة العامة باستخدام أوراكل هو خلق الاصطناعي الرئيسية.هذا هو عمود تعريف عدد.يتم ملؤها عن طريق التسلسل.يتم فهرستها/مقيدة عن طريق مفتاح أساسي التعريف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top