ضبط أداء استعلامات قاعدة البيانات العلاقية

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

لا يتناول هذا الموضوع مشكلات الأداء الناتجة عن المشكلات في شبكتك أو مستعرضك أو تقديم تقريرك.

قم بتحليل سجل استعلامات Oracle Analytics (يلزم وجود مستوى السجل 3)

لمزيد من المعلومات حول كيفية العثور على هذا السجل أو فهم المحتوى، يرجى الاطلاع على جمع سجلات الاستعلامات وتحليلها.

  1. مقارنة مقدار الوقت الذي يقضيه استعلامك في Oracle Analytics بالوقت المنقضي في قاعدة البيانات، أي، وقت الاستجابة مقابل مدة الاستعلام الفعلي. عادة، لا يتجاوز الوقت المنقضي في Oracle Analytics بضع ثوانٍ.
  2. إذا كان وقت الاستجابة يتجاوز بضع ثوانٍ، فقم بتحليل الخطوات الفردية التي تم اتخاذها في Oracle Analytics لمعرفة السبب (يلزم مستوى السجل 5).

تحليل استعلام SQL الفعلي

  1. تحقق مما إذا كانت كل الجداول المضمنة في الاستعلام لازمة. ابحث عن أي جداول تم ربطها لكن لم يتم تضمينها في جملة SELECT وليس بها مرشحات مطبقة (مرشحات حقيقية، وليست شروط ربط).
  2. تعريف عدد الاستعلامات الفعلية والاستعلامات الفرعية التي تم تكوينها. بشكل أكثر دقة، كم عدد مرات قراءة الاستعلام لجدول بيانات فعلية؟ في الظروف المثالية، يقرأ الاستعلام جدول بيانات فعلية واحدًا مرة واحدة فقط. عند وجود أكثر من جدول بيانات فعلية واحد، تعرف على السبب وإذا كان بإمكانك إزالة بعضها.
  3. تحقق من وجود أعمدة مستثناة، قواعد التجميع غير الإضافية (REPORT_AGGREGATE، count(distinct)...)، خطوات التحديد، والاستعلام الفرعي في التقرير، وتعيين المعاملات (UNION)، والإجماليات، والإجماليات الفرعية، وطرق العرض المتعددة، وغيرها.
  4. تحقق من وجود أي روابط خارجية. اكتشف مكان تكوينها وإذا كان يمكنك إزالة بعضها من خلال تغيير التصميم.

تحليل خطة التنفيذ

إذا لم يكن تحسين SQL كافيًا، فحلل خطة التنفيذ للعثور على السبب الرئيسي لمشكلات الأداء لديك. اطلب المساعدة من مسؤول قاعدة البيانات (DBA) لديك. توجد أربع طرق أساسية لتحسين الأداء في هذه النقطة:
  1. قلل حجم استدعاءات المدخلات/المخرجات بتحسين مسارات وصول البيانات (الفهارس).
  2. قلل حجم استدعاءات المدخلات/المخرجات بتقليل حجم البيانات التي تمت قراءتها. على سبيل المثال، يمكنك مراجعة المرشحات المطبقة أو هيكل نموذج البيانات (اطلع على القسم التالي).
  3. زيادة التوازي (عدد سلاسل العمليات المستخدمة لقراءة الجداول الكبيرة).
  4. تحسين سرعة استدعاء المدخلات/المخرجات (تحسينات البنية التحتية، وقاعدة البيانات المضمنة بالذاكرة، وغيرها).

مراجعة نموذج البيانات وتحسينه لتقليل حجم البيانات التي تمت قراءتها

  1. تكوين جداول تجميع.
  2. استخدام التجزئة.

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

  3. استخدم إلغاء التطبيع لتقليل عدد الروابط.
  4. تقسيم الجداول لتقليل عدد الأعمدة.

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

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