هل سجل المعاملات بالسيارة تحتاج إلى أن تكون بأسرع قاعدة البيانات القيادة ؟

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

سؤال

نحن نقول لدينا العميل لوضع قاعدة بيانات SQL Server الملف (mdf) على محرك الأقراص الفعلي من ملف سجل المعاملة (ldf).التكنولوجيا شركة (التعاقد من قبل العميل) أراد أن يضع سجل المعاملات على أبطأ (مثلا ، أرخص) محرك أقراص من محرك قاعدة البيانات ، لأنه مع سجلات المعاملة, أنت فقط sequencially الكتابة إلى ملف سجل.

قلت لهم أنني اعتقد أن محرك (في الواقع RAID) يتعين على محرك سريع لأن كل البيانات المتغيرة الاتصال إلى قاعدة البيانات ، ينبغي حفظها هناك ، وكذلك إلى قاعدة البيانات نفسها.

بعد قائلا أنه على الرغم من أدركت أنني لست متأكدا تماما عن ذلك.هل سرعة تسجيل المعاملات بالسيارة فرقا كبيرا في الأداء...إذا كان محرك الأقراص مع قاعدة البيانات هو سريع ؟

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

المحلول

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

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

لذلك كنت على حق في هذا السجل الإنتاجية أمر بالغ الأهمية.

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

ولكن كل هذه تأتي مع بعض التحذيرات:

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

نصائح أخرى

بعبارات مبسطة ، إذا كنت تتحدث عن قاعدة بيانات OLTP ، يتم تحديد إنتاجيتك من خلال سرعة كتاباتك إلى سجل المعاملات. بمجرد ضرب سقف الأداء هذا ، يجب أن تنتظر جميع الإجراءات التابعة الأخرى الالتزام بالتسجيل لإكمالها.

هذا أمر مبسط للغاية على الأجزاء الداخلية لسجل المعاملات ، والتي يتم تخصيص الكتب بأكملها ، ولكن تظل النقطة البدائية.

الآن إذا كان نظام التخزين الذي تعمل معه يمكن أن يوفر IOPS الذي تحتاجه لدعم كل من ملفات سجل المعاملات وبيانات قاعدة البيانات معًا ، فإن محرك الأقراص/LUN المشترك سيوفره احتياجاتك بشكل كافٍ.

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

احصل على يديك على العنوان SQL Server 2008 Internals للحصول على إلقاء نظرة شاملة على الداخلية لسجل معاملات SQL Server ، فهو أحد أفضل عناوين SQL Server الموجودة وستدفع ثمن نفسه في دقائق من القيمة التي تكسبها من القراءة.

حسنًا ، سجل المعاملات هو الهيكل الرئيسي الذي يوفر الحمض ، يمكن أن يكون عنق الزجاجة الكبير للأداء ، وإذا قمت بإجراء نسخ احتياطية بانتظام ، فإن المساحة المطلوبة لها حد أعلى ، لذلك سأضعه في محرك آمن وسريع مع مساحة فقط بما فيه الكفاية + قليلا من الهامش.

يجب أن يكون سجل المعاملات على أسرع محركات الأقراص ، إذا كان بإمكانه فقط إكمال الكتابة إلى السجل ، فيمكنه القيام ببقية المعاملة في الذاكرة واتركه يضغط على القرص لاحقًا.

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