الأمثل Sybase ASE الجدول قفل مخطط لجدول الكود المرجعي

StackOverflow https://stackoverflow.com/questions/5411111

  •  29-10-2019
  •  | 
  •  

سؤال

لدي جدول رموز مرجعية لن تتم قراءته إلا أثناء الاستخدام العادي ، ومن المفترض أن يتم تحديثه فقط لتغييرات المنتج (شهريًا).

ما هو قفل الجدول الذي يجب أن أستخدمه في بيان إنشاء الجدول؟

كنت أفترض ALLPAGES لأن ذلك يحافظ على العدد الإجمالي لأقفال القراءة التي يحتاج ASE إلى إدارتها ؛لكني أتلقى "نصيحة" مختلفة من مطور آخر بشأن المشروع.

أرى جداول مرجعية أخرى في قاعدة البيانات المعنية تستخدم ALLPAGES ؛ولكن تمت ترقيتهم من 12.5 ، فقد يكون هذا مجرد استحواذ مما كان متاحًا في ذلك الوقت.

الجدول ليس عريضًا جدًا ، فهو يحتوي على عمودين رقميين للمعرف الرقمي ، وعمود حرف (1) ، ومجمع في رمزين رقميين.

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

المحلول

لدي إجابة واضحة فقط - قم بتشغيل sp_object_stats في البداية واختر نظام القفل.

نصائح أخرى

إذا كان الجدول المرجعي مخصصًا للقراءة فقط ، فإن تأمين جميع الصفحات هو الأفضل لأنه يتطلب أقل عدد من الأقفال (التي قلتها) ولا يوجد تعارض في الأقفال المشتركة التي تحصل عليها العمليات أثناء قراءة البيانات.

فقط لإعطائك نصيحة إضافية عن الأداء: حاول دائمًا استخدام جدول مرجعي من خلال استعلام فرعي مرتبط للاستفادة من التخزين المؤقت للاستعلام الفرعي.تذكر أيضًا أن التخزين المؤقت للاستعلام الفرعي يحدث فقط عندما لا يتم تسوية الاستعلام الفرعي بواسطة المحسن ولا يتم تحويله مرة أخرى إلى صلة عادية.الحيلة للتأكد من عدم تسوية الاستعلام الفرعي هي استخدام دالة تجميعية تقول max (attr) على السمة.ستكون وظيفة max مجرد وهمية بدون أي "تجميع حسب".

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