استخدام المتغيرات لتحسين الأداء واستكشاف الأخطاء وإصلاحها

مكتمل

يمكنك استخدام المتغيرات في صيغ DAX لمساعدتك في كتابة حسابات أقل تعقيدًا وأكثر كفاءة. المتغيرات غير مستخدمة بشكل كافٍ من قبل المطورين الذين بدؤوا العمل في Power BI Desktop، لكنها فعالة ويجب أن تستخدمها بشكل افتراضي عند إنشاء المقاييس.

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

يوفر استخدام المتغيرات في نموذج البيانات المزايا التالية:

  • ⁩الأداء المحسّن⁧⁩ - يمكن للمتغيرات أن تجعل المقاييس أكثر كفاءة لأنها تزيل الحاجة إلى Power BI لتقييم نفس التعبير عدة مرات. يمكنك تحقيق النتائج نفسها في استعلام ما في حوالي نصف وقت المعالجة الأصلي.

  • ⁩قابلية القراءة المحسّنة⁧⁩ - المتغيرات لها أسماء قصيرة تصف نفسها بنفسها وتستخدم متغيرًا من تعبير غامض متعدد الكلمات. قد تجد أنه من الأسهل قراءة الصيغ وفهمها عند استخدام المتغيرات.

  • ⁩تصحيح الأخطاء المبسط⁧⁩ - يمكنك استخدام المتغيرات لتصحيح أخطاء الصيغة واختبار التعبيرات، والتي يمكن أن تكون مفيدة في أثناء استكشاف الأخطاء وإصلاحها.

  • ⁩انخفاض التعقيد⁧⁩ - لا تتطلب المتغيرات استخدام دالة EARLIER أو EARLIEST DAX، والتي يصعب فهمها. كانت هذه الوظائف مطلوبة قبل إدخال المتغيرات، وكُتبت في تعبيرات معقدة قدمت سياقات ترشيح جديدة. الآن بعد أن أصبح بإمكانك استخدام المتغيرات بدلاً من تلك الدالات، يمكنك كتابة عدد أقل من الصيغ المعقدة.

استخدام المتغيرات لتحسين الأداء

لتوضيح كيف يمكنك استخدام متغير لجعل مقياس ما أكثر كفاءة، يعرض الجدول التالي تعريف مقياس بطريقتين مختلفتين. لاحظ أن الصيغة تكرر التعبير الذي يحسب "الفترة نفسها من العام الماضي" ولكن بطريقتين مختلفتين: يستخدم المثيل الأول أسلوب حساب DAX العادي ويستخدم المثيل الثاني متغيرات في الحساب.

يعرض الصف الثاني من الجدول تعريف القياس المحسّن. يستخدم هذا التعريف الكلمة الأساسية VAR لتقديم متغير يسمى ⁧⁩SalesPriorYear⁧⁩، ويستخدم تعبيرًا لتعيين نتيجة "الفترة نفسها من العام الماضي" إلى هذا المتغير الجديد. ثم يستخدم المتغير مرتين في التعبير RETURN.

⁩دون متغيّر⁧

Sales YoY Growth =
DIVIDE (
    ( [Sales] - CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) ) ),
    CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
)

⁩بمتغيّر⁧

Sales YoY Growth =
VAR SalesPriorYear =
    CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
VAR SalesVariance =
    DIVIDE ( ( [Sales] - SalesPriorYear ), SalesPriorYear )
RETURN
    SalesVariance

في تعريف القياس الأول في الجدول، تكون الصيغة غير فعالة لأنها تتطلب Power BI لتقييم التعبير نفسه مرتين. التعريف الثاني أكثر كفاءة لأنه، بسبب المتغيّر، يحتاج Power BI إلى تقييم التعبير PARALLEDPERIOD مرة واحدة فقط.

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

استخدم المتغيرات لتحسين قابلية القراءة

بالإضافة إلى الأداء المحسن، قد تلاحظ كيف يؤدي استخدام المتغيرات إلى تسهيل قراءة التعليمات البرمجية.

عند استخدام المتغيرات، من الأفضل استخدام أسماء وصفية للمتغيرات. في المثال السابق، يسمى المتغير ⁧⁩SalesPriorYear⁧⁩، والذي يوضح بوضوح ما يقوم المتغير بحسابه. ضع في اعتبارك نتيجة استخدام متغير كان يسمى ⁧⁩X⁧⁩ أو ⁧⁩temp⁧⁩ و⁧⁩variable1⁧⁩؛ لن يكون الغرض من المتغير واضحًا على الإطلاق.

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

استخدم المتغيرات لاستكشاف خطوات متعددة وإصلاحها

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

في المثال التالي، تختبر تعبيرًا مخصصًا لمتغير. لتصحيح الأخطاء، أعد كتابة تعبير RETURN مؤقتاً للكتابة إلى المتغير. يقوم تعريف المقياس بإرجاع متغير SalesPriorYear فقط لأن هذا ما يأتي بعد تعبير RETURN.

Sales YoY Growth % =
VAR SalesPriorYear =  CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)  
RETURN  SalesPriorYear%

سيعرض تعبير RETURN قيمة SalesPriorYear٪ فقط. تسمح لك هذه التقنية بعكس التعبير عند الانتهاء من تصحيح الأخطاء. كما أنه يجعل العمليات الحسابية أسهل في الفهم نظرًا إلى انخفاض تعقيد التعليمات البرمجية لـ DAX.