مشاركة عبر


سيناريوهات الاستخدام لمخزن الاستعلام

يمكنك استخدام مخزن الاستعلام في مجموعة واسعة من السيناريوهات التي يكون فيها تعقب أداء حمل العمل المتوقع والحفاظ عليه أمرا بالغ الأهمية. تأمل الأمثلة التالية:

  • تحديد الاستعلامات المكلفة وضبطها.
  • إجراء اختبار A/B.
  • تحديد وتحسين أحمال العمل المرتجلة.

تحديد الاستعلامات المكلفة وضبطها

تحديد الاستعلامات طويلة الأمد

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

استهداف الاستعلامات باستخدام دلتا الأداء

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

ضبط الاستعلامات باهظة الثمن

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

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

إجراء اختبار A/B

استخدم مخزن الاستعلام لمقارنة أداء حمل العمل قبل وبعد تغيير التطبيق الذي تخطط لتقديمه أو قبل الترحيل وبعده. مثال على سيناريوهات استخدام مخزن الاستعلام لتقييم تأثير التغييرات على أداء حمل العمل:

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

في أي من هذه السيناريوهات، تطبيق سير العمل التالي:

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

تحديد أحمال العمل المرتجلة وتحسينها

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

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