سؤال

كيف دفعة واحدة حول التنميط بعض الاستعلامات التي يتم تشغيلها من ASP.NET التطبيق ؟ هناك بعض البرامج التي أعمل فيها أن يعمل بطيئة للغاية لأن قاعدة البيانات (على ما أظن).في الجداول والفهارس لكنها لا تزال تستمر لأنها تعمل مع الكثير من البيانات.كيف يمكنني تعريف لنرى أين يمكنني القيام ببعض التحسينات الطفيفة التي يؤمل أن تؤدي إلى سرعة أكبر التحسينات ؟

تحرير:أود أن أضيف أن خادم يحب أن المهلة خلال هذه الاستفسارات.

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

المحلول

Sql Server لديه بعض أدوات ممتازة لمساعدتك مع هذا الوضع.هذه الأدوات هي في صلب إدارة Studio (التي كانت تسمى إدارة المؤسسة + محلل استعلام).

استخدام منشئ ملفات التعريف SQL تظهر لك الفعلية الاستفسارات القادمة من تطبيق ويب.

نسخ كل من الاستفسارات المشكلة من (تلك التي تلتهم الكثير من الوقت وحدة المعالجة المركزية أو IO).تشغيل الاستعلامات مع "العرض الفعلي خطة التنفيذ".نأمل أنك سوف ترى بعض الواضح مؤشر مفقود.

يمكنك أيضا تشغيل "معالج ضبط" (الزر بجوار "عرض الفعلي خطة التنفيذ".فإنه سيتم تشغيل الاستعلام و تقديم الاقتراحات.

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

الحفاظ على جميع الاستفسارات الخاصة بك في الإجراءات المخزنة يجعل هذا العمل كثيرا أسهل.

نصائح أخرى

إلى التعريف SQL Server استخدام منشئ ملفات التعريف SQL.

ويمكنك استخدام النمل التعريف من البوابة الحمراء إلى ملف التعليمات البرمجية الخاصة بك.

آخر .صافي التعريف الذي يلعب بشكل جيد مع ASP.NET هو dotTrace.أنا شخصيا استخدمه و وجدت الكثير من الاختناقات في قانون بلدي.

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

ضبط الأداء هو شيء معقد.ولكن هناك بعض الأماكن أن ننظر في البداية.يقول لك يعودون الكثير من البيانات ؟ هل ستعود بيانات أكثر مما تحتاج ؟ هل حقا تعود فقط الأعمدة والسجلات تحتاج ؟ عودة 100 الأعمدة باستخدام select * يمكن أن يكون أبطأ بكثير من عودته 5 أعمدة كنت فعلا تستخدم.

هي مؤشرات و إحصاءات ما يصل إلى التاريخ ؟ البحث عن كيفية تحديث statisistcs وإعادة مؤشر في بول إذا لم تكن قد فعلت هذا في لحظة.هل لديك مؤشرات على الانضمام إلى الحقول ؟ كيف حول الحقول في جملة where.

هل تستخدم المؤشر?هل تستخدم الاستعلامات الفرعية?ماذا عن الاتحاد إذا كنت تستخدم فإنه يمكن تغيير هذا الاتحاد ؟

هي الاستفسارات الخاصة بك sargable (google إذا كان غير مألوف مع هذا المصطلح.)

هل تستخدم متميزة عندما يمكنك استخدام مجموعة ؟

يمكنك الحصول على الأقفال ؟

هناك العديد من الأشياء الأخرى أن ننظر إلى هذه مجرد مكان الانطلاق.

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

SET STATISTICS TIME ON
SET STATISTICS IO ON

عند تشغيل الإحصاءات في محلل استعلام الإحصاءات تظهر في علامة التبويب رسائل من جزء النتائج.

IO إحصاءات مفيدة بشكل خاص بالنسبة لي, لأنه يتيح لي أن أعرف إذا كنت قد تحتاج إلى فهرس.إذا رأيت ارتفاع عدد قراءة من IO الإحصاءات قد حاول إضافة فهارس مختلفة المتضررة الجداول.كما أحاول مؤشر تشغيل الاستعلام مرة أخرى لمعرفة ما إذا كان عدد قراءة قد ذهب إلى أسفل.بعد عدد قليل من التكرارات ، وعادة ما يمكن أن أجد أفضل مؤشر(es) للجداول المعنية.

هنا روابط MSDN هذه الإحصاءات الأوامر:

تعيين إحصاءات الوقت

تعيين إحصاءات IO

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