it-swarm.asia

هل تؤدي إعادة تشغيل SQL Server إلى تسريعها؟

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

هل صحيح أن إعادة تشغيل SQL Server يوميًا تجعله يعمل بشكل أسرع؟

22
MAK

من المحتمل أن تكون إعادة تشغيل الخادم من أكثر الأشياء ضررًا للأداء. هذا يعني أنك تفرض ذاكرة تخزين مؤقت باردة للبيانات ، وذاكرة تخزين مؤقت باردة لخطط الاستعلام ، وجميع ذاكرة التخزين المؤقت الداخلية لـ SQL Server أيضًا في العملية. ناهيك عن أنه من خلال التخلص من جميع الإحصاءات التي تم جمعها في DMVs للإحصاءات التشغيلية ، فإنك تقلل من فرصك في التحقيق في شيء بنجاح.

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

37
Remus Rusanu

في حين أن الإجابات الأخرى جيدة ، إلا أنها تفتقد إلى جزء مهم: ذاكرة التخزين المؤقت لملف Windows.

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

من خلال إعادة تشغيل SQL Server ، فإنك تجبر SQL على التخلي عن الذاكرة ، مما يتيح لـ Windows الحصول على المزيد ، ويتوقف الترحيل مؤقتًا. ستبدأ SQL مرة أخرى عند استخدام ذاكرة تقترب من الصفر وترتفع تدريجيًا ، وعندما تنفد ذاكرة الصندوق مرة أخرى ، ستساعدك إعادة التشغيل مؤقتًا. من خلال إعادة تشغيل نظام التشغيل بالكامل ، ستفرض أيضًا استخدام ذاكرة التخزين المؤقت للملفات في Windows.

الإصلاح الحقيقي: توقف عن نسخ الملفات من خادم Windows أو حدد حجم ذاكرة التخزين المؤقت للملفات المستخدمة مع Dynamic File Cache Service كما هو موثق في تلك المدونات أعلاه.

28
Brent Ozar

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

11
billinkc

لا يجب إعادة تشغيل SQL Server إلا إذا قمت بتغيير خصائص الخدمة أو تعيين آثار بدء التشغيل التي تريد أن تصبح نافذة المفعول على الفور.

كما ذكرRemusRusanu العديد من النقاط ، فإنه يمسح الكثير من ذاكرة التخزين المؤقت و يؤدي SQL Server إلى القيام بالكثير من أعمال بدء التشغيل غير الضرورية.

يبدو أن هذا الخادم ليس خادم SQL Server/قاعدة بيانات مخصص. من الأفضل أن يكون لخادم قاعدة بيانات الإنتاج غرض واحد فقط ... أن يكون خادم قاعدة بيانات. في هذه الحالة ، يمكنك تخصيص ما يكفي من الذاكرة والموارد لنظام التشغيل وإعطاء كل شيء آخر لـ SQL Server. سيؤدي هذا إلى عدم تجويع أي تطبيقات أو أدوار خادم أخرى.

11
Thomas Stringer

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

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

هل ذكرت أنني لست خبير أمان أو مهندس شبكات أيضًا؟

  • لا بد من تحديث واحد على الأقل من تحديثات أنظمة تشغيل Window الرئيسية أو تحديث الأمان أو تحديث BIOS أو OS/MSSQL Service Pack أو التحديث التراكمي MSSQL كل شهر أو شهرين.
  • يعني تطبيق هذه في الوقت المناسب إعادة التشغيل/إعادة تشغيل الخادم الخاص بك كل ربع سنة تقريبًا.
  • حتى عند العمل داخل إنترانت ، لماذا لا تقوم بتطبيق تحديثات الأمان؟
  • إذا سمح لي بالحصول على طبقة المقابس الآمنة (SSL) على مواقع الويب الخاصة بإنترانت PHI ، فسأفعل ذلك لأنه لا توجد شبكة معصومة أنا بجنون العظمة أعتقد.


بالنسبة لي يصبح السؤال عندئذٍ: هل يجب علي إعادة تشغيل SQL Server أكثر من 3 أشهر؟

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

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

لا أحب أن أقول لك [~ # ~] مطلقًا [~ # ~] تحتاج إلى إعادة تشغيله لاستكشاف الأخطاء وإصلاحها إصدار الفشل أو التحقق منه ، ولكن أنا لدي لدي مشكلة في جدولة إعادة التشغيل لمنع حدوث مشكلة غير معروفة في الأداء بشكل عشوائي.

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

2
MikeTeeVee