إصلاح مشاكل الأداء

مكتمل

ستحتاج المؤسسات أحيانًا إلى معالجة مشكلات الأداء عند تشغيل التقارير. يوفر Power BI أداة محلل الأداء للمساعدة في إصلاح المشكلات وتبسيط العملية.

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

تحسين الأداء في Power Query

يعتمد الأداء في Power Query على الأداء على مستوى مصدر البيانات. مجموعة متنوعة من مصادر البيانات التي يقدمها Power Query واسعة جدًا، وتقنيات ضبط الأداء لكل مصدر واسعة بنفس القدر. على سبيل المثال، إذا قمت باستخراج البيانات من Microsoft SQL Server، يجب اتباع إرشادات ضبط الأداء للمنتج. تتضمن تقنيات ضبط أداء SQL Server جيدة إنشاء الفهرس وترقيات الأجهزة وضبط خطة التنفيذ وضغط البيانات. تخرج هذه المواضيع عن النطاق هنا، وتتم تغطيتها فقط كمثال للتعود على مصدر البيانات وجني الفوائد عند استخدام Power BI وPower Query.

يستفيد Power Query من الأداء الجيد في مصدر البيانات من خلال تقنية تسمى "Query Folding".

Query folding

يساعدك "query folding" داخل Power Query Editor على زيادة أداء تقارير Power BI. ⁧⁧⁩⁩"Query folding"⁧⁧⁩⁩ هو العملية التي يتم عن طريقها تعقب التحويلات وعمليات التحرير التي تقوم بها في Power Query Editor في نفس الوقت كـاستعلامات أصلية أو ⁧⁧⁩⁩عبارات تحديد⁧⁧⁩⁩SQL بسيطة في أثناء إجراء تحويلات بشكل نشط. والسبب في تنفيذ هذه العملية هو التأكد من أن هذه التحويلات يمكن أن تحدث في الخادم الأصلي مصدر البيانات ولا تطغى على موارد الحوسبة في Power BI.

يمكنك استخدام Power Query لتحميل البيانات إلى Power BI. باستخدام Power Query Editor يمكنك بعد ذلك إجراء تحويلات أخرى للبيانات، مثل إعادة تسمية الأعمدة أو حذفها، أو إلحاق البيانات، أو تحليلها، أو تصفيتها، أو تجميعها.

خذ بعين الاعتبار سيناريو حيث قمت بإعادة تسمية أعمدة قليلة في بيانات المبيعات ودمج عمود المدينة والدولة معًا في تنسيق "city state". وفي الوقت نفسه، تتتبع ميزة "query folding" هذه التغييرات في الاستعلامات الأصلية. ثم، عند تحميل البيانات الخاصة بك، يتم إجراء التحويلات بشكل مستقل في المصدر الأصلي، وهذا يضمن تحسين الأداء في Power BI.

تشمل فوائد "query folding":

  • ⁧⁧⁩⁩زيادة الكفاءة في تحديث البيانات والتحديثات التزايدية.⁧⁧⁩⁩ عند استيراد جداول البيانات باستخدام "query folding"، يكون Power BI أكثر قدرة على تخصيص الموارد وتحديث البيانات بشكل أسرع نظرًا إلى أن Power BI لا يجب أن يتم تشغيله خلال كل تحويل محليًا.

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

يعرض السيناريو التالي "query folding" وهو يعمل. في هذا السيناريو، يمكنك تطبيق مجموعة من الاستعلامات على جداول متعددة. بعد إضافة مصدر بيانات جديد باستخدام Power Query، وتوجيهك إلى Power Query Editor، انتقل إلى جزء ⁧⁧⁩⁩⁩Query Settings⁦⁦⁩⁩ وانقر بزر الفأرة الأيمن فوق الخطوة الأخيرة التي تم تطبيقها، كما هو موضح في الشكل التالي.

⁧⁧⁩⁩⁧⁧⁩⁩لقطة شاشة للخطوة الأخيرة التي تم تطبيقها بالنقر بزر الفأرة الأيمن لإظهار قائمة السياق.⁧⁧⁩⁩

إذا لم يكن الخيار View Native Query متوفرًا (غير معروض بخط عريض) فلن يكون ممكنًا طي الاستعلام لهذه الخطوة، ويجب عليك العمل إلى الخلف في مساحة Applied Steps حتى تصل إلى الخطوة التي يتوفر فيها View Native Query (يظهر بخط عريض). سوف تكشف هذه العملية عن الاستعلام الأصلي الذي يتم استخدامه لتحويل مجموعة البيانات.

الاستعلامات الأصلية غير ممكنة من أجل التحويلات التالية:

  • إضافة عمود فهرس
  • دمج وإلحاق أعمدة من جداول مختلفة مع مصدرين مختلفين
  • تغيير نوع البيانات لعمود

التوجيه الجيد الذي يجب أن نتذكره هو أنه إذا كان يمكنك ترجمة تحويل إلى عبارة ⁧⁧⁩⁩تحديد⁧⁧⁩⁩SQL، والذي يتضمن عوامل التشغيل والعبارات مثل GROUP BY، وSORT BY، وWHERE، وUNION ALL، وJOIN، يمكنك استخدام "query folding".

بينما يتمثل "query folding" في أحد الخيارات لتحسين الأداء عند استرداد واستيراد وإعداد البيانات، يمكن تشخيص الاستعلام كخيار آخر.

تشخيص الاستعلام

أداة أخرى يمكنك استخدامها لدراسة أداء الاستعلام هي ⁧⁧⁩⁩تشخيصات الاستعلام⁧⁧⁩⁩. نسمح لك هذه الميزة بتحديد أية مشاكل (إن وجدت) موجودة في أثناء تحميل وتحويل البيانات الخاصة بك، تحديث البيانات الخاصة بك في Power Query، تشغيل عبارات SQL في Query Editor، الخ.

للوصول إلى تشخيصات الاستعلام في Power Query Editor، انتقل إلى ⁧⁧⁩⁩⁧⁧⁩⁩Tools⁦⁦⁩⁩ في الشريط الرئيسي. عندما تكون جاهزًا لبدء تحويل بياناتك أو إجراء عمليات تحرير أخرى في محرر Power Query، حدد بدء التشخيص في القسم تشخيص وحدة العمل. عند الانتهاء، تأكد من تحديد إيقاف التشخيص.

⁧⁧⁩⁩⁧⁧⁩⁩لقطة شاشة لعلامة التبويب «Tools» مع خيارات تشخيص جلسة العمل في Power Query Editor.⁧⁧⁩⁩

يُظهر تحديد ⁧⁧⁩⁩⁧⁧⁩⁩Diagnose Step⁦⁦⁩⁩ طول الوقت الذي يستغرقه تشغيل هذه الخطوة، كما هو موضح في الصورة التالية. يمكن أن يخبرك هذا التحديد إذا كانت الخطوة تستغرق وقتًا أطول لإكمالها من غيرها، والتي تعمل بعد ذلك كنقطة انطلاق لمزيد من التحقيق.

⁧⁧⁩⁩⁧⁧⁩⁩لقطة شاشة لتطبيق تشخيصات الاستعلام.⁧⁧⁩⁩

تكون هذه الأداة مفيدة عندما تريد تحليل الأداء من جانب Power Query للمهام مثل تحميل مجموعات البيانات أو تحديث البيانات أو تشغيل مهام تحويلية أخرى.

تقنيات أخرى لتحسين الأداء

تتضمن الطرق الأخرى لتحسين أداء الاستعلام في Power BI ما يلي:

  • ⁧⁧⁩⁩قم بالمعالجة قدر الإمكان من البيانات في مصدر البيانات الأصلي.⁧⁧⁩⁩ يسمح لك Power Query وPower Query Editor بمعالجة البيانات؛ ومع ذلك، قد يقلل قوة أداء المعالجة المطلوبة لإكمال هذه المهمة في مناطق أخرى من التقارير الخاصة بك. عمومًا، الممارسة الجيدة هي المعالجة قدر الإمكان في مصدر البيانات الأصلي.

  • ⁧⁧⁩⁩استخدام استعلامات SQL الأصلية.⁧⁧⁩⁩ عند استخدام DirectQuery لقواعد بيانات SQL، مثل الحالة الخاصة بالسيناريو، تأكد من أنك لا تسحب البيانات من الإجراءات المخزنة أو تعبيرات الجدول الشائعة (CTEs).

  • ⁧⁧⁩⁩قم بفصل التاريخ والوقت، إذا كانا مرتبطين.⁧⁧⁩⁩ إذا كان لأي من جداولك أعمدة تجمع بين التاريخ والوقت، فتأكد من فصلها إلى أعمدة مميزة قبل استيرادها إلى Power BI. هذا الأسلوب سيزيد من قدرات الضغط.

لمزيد من المعلومات، راجع ⁧⁧⁩⁩إرشادات Query Folding⁧⁧⁩⁩ و⁧⁧⁩⁩Query Folding⁧⁧⁩⁩.