سؤال

هل هناك أي عيب (باستثناء السماح للقيمة أو مجموعة لتنمو كبيرة جدا) لتحديد حجم عدد صحيح كحد أقصى من VARCHAR أو VARRAY إلى قيمة أكبر بكثير مما هو ضروري فعلا (أو تعيين إلى حجم الحد الأقصى المسموح به)؟

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

المحلول

إذا كنت تتحدث عن عمود في جدول قاعدة بيانات، فإنه من المستحسن لتعيين الحد الأقصى لطول VARCHAR2 إلى الحد الأدنى للطول المسموح به من قبل متطلبات - مثل أي عائق آخر، فإنه يساعد على استخدام هذه الميزات يحمل في ثناياه عوامل ل يحصل على حفظ قاعدة بيانات لضمان فقط بيانات صالحة (على سبيل المثال إذا كان اللقب مع 1000 حرف يتم إدخال وأنا متأكد من أنه سيكون من الخطأ، وربما تسليط الضوء على خلل في برنامج في مكان ما).

في الجانب PL / SQL، فإنه قد يثير لك أن تعرف أنه قد يكون هناك اختلافات الذاكرة (PGA) استخدام اعتمادا حجم ما تقوم بتعريف سلاسل الخاص بك في برامج PL / SQL الخاصة بك. داخليا، هناك عتبة في 2000 بايت، حيث تبديل / SQL محرك PL بين خطتين تخصيص الذاكرة المختلفة. مثلا الإعلان التالي:

DECLARE v VARCHAR2(2000); BEGIN...

وسيتم تخصيص 2000 بايت في منطقة الذاكرة للمستخدم، حيث:

DECLARE v VARCHAR2(2001); BEGIN...

وسيتم تخصيص الذاكرة فقط عندما يتم تعيين قيمة، وستخصص فقط قدر الذاكرة كما هو مطلوب للاحتفاظ القيمة المخصصة لذلك.

منتدى أوراكل: "تخصيص مساحة VARCHAR2"

نصائح أخرى

لا تستخدم فقط varray، استخدم جدول متداخل. يمكن الجداول المتداخلة عقد عدد arbitry من العناصر.

وعن طريق VARCHAR2 (4000) بدلا من VARCHAR2 (20) في تعريف الجدول لا يضر حقا لأوراكل لا تدعي هذه المساحة عند عدم الحاجة إليه.

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