كيف يمكنك قياس قيمة عامل تعبئة SQL
-
08-06-2019 - |
سؤال
عادةً، عندما أقوم بإنشاء فهارس على الجداول، أخمن عمومًا ما هو Fill Factor
يجب أن يستند إلى تخمين مدروس لكيفية استخدام الجدول (قراءات عديدة أو كتابة كثيرة).
هل هناك طريقة أكثر علمية لتحديد أكثر دقة Fill Factor
قيمة؟
المحلول
يمكنك تجربة تشغيل قائمة كبيرة من العمليات الواقعية والنظر في قوائم انتظار الإدخال/الإخراج للإجراءات المختلفة.
هناك الكثير من المتغيرات التي تحكمه، مثل حجم كل صف وعدد عمليات الكتابة مقابل عمليات القراءة.
أساسًا:عامل التعبئة العالي = قراءة أسرع، منخفض = كتابة أسرع.
ومع ذلك، فإن الأمر ليس بهذه البساطة، حيث إن جميع عمليات الكتابة تقريبًا ستكون في مجموعة فرعية من الصفوف التي تحتاج إلى البحث عنها أولاً.
على سبيل المثال:قم بتعيين عامل التعبئة على 10% وسيستغرق كل تحديث لصف واحد 10 أضعاف الوقت للعثور على الصف الذي يتغير، على الرغم من أن تقسيم الصفحة سيكون غير مرجح جدًا.
بشكل عام، ترى عوامل التعبئة تتراوح من 70% (كتابة عالية جدًا) إلى 95% (قراءة عالية جدًا).
إنه نوع من الفن.
أجد أن الطريقة الجيدة للتفكير في عوامل التعبئة هي أن تكون بمثابة صفحات في دفتر العناوين - فكلما قمت بحزم العناوين بشكل أكثر إحكامًا، أصبح تغييرها أكثر صعوبة، ولكن كلما كان الكتاب أصغر حجمًا.أعتقد أنني شرحت ذلك بشكل أفضل مدونتي.
نصائح أخرى
أميل إلى الرأي القائل بأنه إذا كنت تسعى إلى تحسين الأداء، فمن الأفضل قضاء وقتك في مكان آخر، وتعديل مخططك، وتحسين استفساراتك، وضمان تغطية فهرس جيدة.يعد عامل التعبئة أحد تلك الأشياء التي لا داعي للقلق بشأنها إلا عندما تكون يعرف أن كل شيء آخر في نظامك هو الأمثل.لا أعرف أحداً يستطيع أن يقول ذلك.