it-swarm.asia

استخدام ملف تعريف SQL على قاعدة بيانات قيد الإنتاج

بصفتي مطورًا ، أستخدم Profiler SQL كثيرًا. إنها أداة تصحيح جيدة ، لتتبع ما يفعله الكود الخاص بي وتحليل مشاكل الأداء.

لكني دائما استخدمته على بلدي تطوير البيئة ، وبطريقة مضبوطة للغاية.

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

هل يمكن استخدام ملف تعريف SQL عمليًا في بيئة داخل الإنتاج؟

أول ما يقلقني هو أنه سيؤدي إلى تدهور الأداء.

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

هل يستخدم أي شخص ملف تعريف SQL في الإنتاج؟

28
Andrew Shepherd

لا يعد استخدام Sql Server Profiler (أداة GUI) لتتبع خادم إنتاج فكرة جيدة. لكن ذلك يعتمد على الحمل. استخدم تتبع SQL من جانب الخادم (انظر sp_trace_XXX الإجراءات) بدلاً من ذلك. كما وجدت مقالات:

تأثير الأداء: تتبع ملف التعريف مقابل تتبع SQL من جانب الخادم ،

أتمتة تتبع جانب الخادم في SQL Server

تجنب التسبب في مشاكل مع المحلل

ربما ستكون مهتمة ومفيدة.

كتاب عبر الإنترنت يقول:

  • قم بتشغيل Profiler عن بعد بدلاً من الخادم مباشرة
  • تجنب تضمين الأحداث التي تحدث بشكل متكرر (مثل القفل: مكتسب) إلا إذا كانت هناك حاجة ماسة
  • قم بتضمين فئات الأحداث المطلوبة فقط
  • حدد تحديد المرشحات لتقليل عدد الأحداث
  • تجنب البيانات الزائدة (مثل SQL: BatchStarting و SQL: BatchCompleted)
  • تجنب تشغيل آثار كبيرة مع Profiler؛ ضع في اعتبارك تتبع SQL من جانب الخادم بدلاً من ذلك
  • الحد من حجم ملف التتبع من جانب الخادم وإدارة استخدام المساحة
19
garik

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

21
mrdenny
  1. نعم ، يتطلب عمل المراقبة بعض الموارد. قد يؤدي تشغيله على خادم زائد التحميل إلى القضاء عليه.

  2. ستراقب في الواقع حمل الحياة الحقيقية: قد تضيع أفعالك في ضجيج هذا الحمل.

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

المفتاح هو معرفة ما تبحث عنه: نحن لا نميل إلى تركها تعمل وتحاصر كل شيء.

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

7
gbn

سيقدم المحلل دائمًا تأثيرًا على الأداء.

إذا كنت تستخدم SQL Server 2008R2 + يمكنك استخدام الأحداث الموسعة. يوفر ذلك الكثير من المعلومات التي تراها في المحلل مع جزء من نتيجة الأداء.

مقدمة الكتب على الإنترنت http://technet.Microsoft.com/en-us/library/bb630354 (v = sql.105) .aspx

تلقت هذه الميزة تحديثًا كبيرًا في SQL Server 2012 والذي يتضمن الآن واجهة المستخدم الرسومية في SSMS.

2
James Anderson