سؤال

إذا كنت تقوم بإنشاء جدول مؤقت داخل إجراء مخزن و تريد أن تضيف مؤشر أو اثنين على ذلك ، لتحسين أداء أي بيانات إضافية ضد ذلك ، ما هو أفضل نهج ؟ Sybase يقول هذا:

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

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

على العموم, أنا لست مروحة كبيرة من المجمع الإجراءات التي لا تضيف قيمة ، لذلك أنا لم حصلت في الواقع حول اختبار هذا, ولكن فكرت في طرح السؤال هناك ، لمعرفة إذا كان أي شخص لديه أي مناهج أخرى أو نصيحة ؟

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

المحلول

بعض الأفكار:

  • إذا كان لديك جدول مؤقت كبيرة جدا أن عليك أن مؤشر عليه ، ثم هل هناك طريقة أفضل لحل المشكلة ؟
  • يمكنك النفاذ إلى استخدام مؤشر (إذا كنت متأكدا من أن المؤشر هو الطريق الصحيح للوصول إلى الجدول) قبل إعطاء محسن تلميح من شكل:

    SELECT * 
    FROM   #table (index idIndex) 
    WHERE  id = @id
    

إذا كنت مهتما في الأداء نصائح عامة, لقد أجبت على بعض الأسئلة الأخرى عن ذلك بشيء من التفصيل هنا:

نصائح أخرى

ما هي المشكلة مع إضافة فهارس بعد وضع البيانات في الجدول المؤقت?

شيء واحد تحتاج إلى أن تضع في اعتبارها هي الرؤية من مؤشر إلى حالات أخرى من الإجراءات التي قد تكون قيد التشغيل في نفس الوقت.

أود أن أضيف guid إلى هذه الأنواع من الجداول temp (وإلى الفهارس) ، للتأكد من أنه لن تكون هناك الصراع.فائدة أخرى من هذا النهج هو أنه ببساطة يمكن أن تجعل درجة الحرارة طاولة طاولة الحقيقي.

أيضا, تأكد من أنك سوف تحتاج إلى الاستعلام عن البيانات في هذه الجداول temp أكثر من مرة أثناء تشغيل الإجراء المخزن, وإلا فإن تكلفة إنشاء فهرس سوف تفوق فائدة حدد.

في Sybase إذا قمت بإنشاء جدول temp ومن ثم استخدامها في proc خطة حدد بنيت باستخدام تقدير 100 الصفوف في الجدول.(الخطة بنيت عندما يبدأ الإجراء قبل الجداول بالسكان.) هذا يمكن أن يؤدي إلى الجدول المؤقت يجري الطاولة الممسوحة ضوئيا لأنه هو فقط "100 الصفوف".استدعاء آخر proc أسباب Sybase لبناء خطة حدد مع عدد الصفوف الفعلي ، وهذا يسمح محسن لاختيار أفضل مؤشر للاستخدام.لقد رأيت كبيرة improvedments باستخدام هذا النهج ولكن الاختبار في قاعدة البيانات الخاصة بك كما في بعض الأحيان لا يوجد فرق.

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