Power BI / متقدم: الأداء والتسليم المحكوم / الدرس 14
فهم أداء النموذج وDAX
شخص بطء التفاعل من شكل النموذج وسياق الاستعلام والدليل المقاس، ولا تعامل كل مكرر أو جدول كبير كمشكلة واحدة.
في هذه الصفحة
أهداف الدرس
- فصل حجم النموذج وعمل المصدر ومدة العرض.
- شرح تعددية القيم وتقليل البيانات المقصود.
- استخدام المتغيرات دون تغيير سياق التقييم المقصود.
ابدأ بتفاعل قابل لإعادة الإنتاج
يسمي سؤال الأداء المفيد صفحة التقرير والاختيار والنتيجة المتوقعة والمشاهدة البطيئة. قد يتأخر عرض بسبب استعلام DAX أو عمل المصدر أو الرسم أو انتظار آخر. لا يفسر حجم نموذج كبير كل بطاقة بطيئة تلقائيا، وقد ينفذ نموذج صغير تعبيرا مكلفا. احفظ سياق التصفية وقارن تفاعلات متماثلة. يستطيع Performance Analyzer تقديم فئات زمن للرسوم في تجارب تأليف مدعومة، لكن تفسيرها يحتاج عناية. لا يفتح المسار تقريرا أو ينفذ معيار أداء أو يختلق أزمنة محرك؛ أمثلته نماذج دلالية وحسابية فقط.
قلل البيانات دون كسر المعنى
احتفظ بالأعمدة والصفوف التي تخدم التقارير أو العلاقات أو الحسابات أو الأمان، وأزل غير اللازم فعلا بعقد موثق. قد يزيد النص عالي التعددية عمل التخزين، لكن عدد القيم وحده ليس معادلة لحجم النموذج. قد يقلل تلخيص الوقائع إلى شهر ومنتج الصفوف، مع فقد تفصيل اليوم والطلب؛ وهذا تغير قدرة لا مجرد ترميز أسرع. احفظ متطلبات الحفر والتسوية قبل التلخيص. يقارن برنامج Python الأول أعداد القيم الفريدة في أعمدة صغيرة، ولا يقدر ضغط VertiPaq أو ذاكرته، وليس اختبار حمل عمدا.
category = ["A", "A", "B", "B", "A", "B"]
reference = ["r1", "r2", "r3", "r4", "r5", "r6"]
print(len(set(category)))
print(len(set(reference)))
2
6
اثنان وستة عد للقيم المختلفة فقط. لا يقاس ضغط أو زمن محرك أو طلب ذاكرة.
استخدم المتغيرات في السياق الصحيح
قد يجعل المتغير المقياس أوضح ويجنب تكرار التعبير نفسه، لكن تقيم قيمته في السياق الذي عرف فيه. المتغير المفرد الذي يحمل Revenue ليس صيغة قابلة لإعادة الاستخدام تعيد CALCULATE تقييمها بعد مرشح منتج لاحق. يقارن المقطع الثاني مقياسين: يلتقط Fixed Context الإيراد الحالي أولا، بينما يقيم Recomputed A مقياس Revenue داخل السياق المعدل. تحت B تكون التوقعات 20 و50. يهم الفرق الدلالي قبل التحسين؛ فالتعبير الأقصر أو الذي يبدو مخزنا لا يحسن شيئا إذا غير السؤال.
Fixed Context =
VAR CapturedRevenue = [Revenue]
RETURN CALCULATE(CapturedRevenue, DimProduct[ProductKey] = "A")
Recomputed A = CALCULATE([Revenue], DimProduct[ProductKey] = "A")
افترض سياق B في البيانات المشتركة. توضح20 و50 المقصودتان دلالة السياق؛ ولم ينفذ تقييم أو توقيت DAX.
قس فرضية واحدة كل مرة
بعد إثبات الصحة اختر فرضية، مثل استعلام تفاصيل غير لازم في رسم أو تأخر DirectQuery يعتمد على المصدر. قارن الاختيار والمخرج نفسيهما قبل تغيير مبرر واحد وبعده. قد تؤثر حالة التخزين المؤقت والنشاط المتزامن وظروف المصدر، فسجلها بدلا من نشر نسبة سرعة عامة. لا تفترض أن كل SUMX ضارة أو تستبدلها بحساب خاطئ. تهم العلاقات وشكل التعبير والصفوف المقيمة كلها. يحفظ التحسين المفيد نتائج المقياس وعقد الأمان، بينما يعالج اختناقا ثبت بالدليل.
انشر دليل أداء محدد الحدود
يسجل تسليم الأداء التفاعل البطيء ونمط النموذج والمصدر والسياق وخط الأساس والتغيير الدقيق ونتائج التحقق وحدود القياس. قد يكسر حذف عمود تقارير تابعة أو قواعد أمان، فافحص الاعتماديات قبل التقليص. ينفذ المسار عد مجموعات من ست قيم فقط، ولا يشغل حملا في Power BI أو المصدر أو السعة. ويبقى DAX غير قابل للتشغيل. يمكن لفحص مخول لاحقا استخدام التشخيص المدعوم ببيانات افتراضية، لكن تقيد النتيجة بتلك البيئة، ولا تحول إلى توصية عامة بالضغط أو السعة أو أسرع دالة.
الأخطاء الشائعة وإصلاحها
توقع إعادة حساب متغير مفرد بعد تغيير المرشح
- لماذا يحدث؟
- اختلط ناتج تعبير محفوظ بتعريف مقياس.
- كيف تصلحه؟
- قيم المقياس داخل السياق المعدل المقصود.
- كيف تتجنب تكراره؟
- اختبر تغيير المتغير بسياقات متعارضة.
حذف تفصيل مطلوب بصمت بالتجميع الشهري
- لماذا يحدث؟
- افتُرض حفظ المعنى عند التقليل.
- كيف تصلحه؟
- احفظ التفصيل اللازم أو وثق تغير قدرة الحفر.
- كيف تتجنب تكراره؟
- راجع المقاييس والتقارير التابعة قبل التلخيص.
تحويل مثال تعددية صغير إلى وعد ضغط
- لماذا يحدث؟
- رُفع عد مفاهيمي إلى قياس محرك.
- كيف تصلحه؟
- اذكر حدود الحساب واجمع دليل النموذج منفصلا.
- كيف تتجنب تكراره؟
- افصل ادعاءات الأداء المتوقعة والمقاسة.
اختبر فهمك
1. لماذا قد تعيد Fixed Context قيمة20 تحت B رغم ذكر A في CALCULATE؟
اعرض الحل المشروح
يحتوي CapturedRevenue أصلا النتيجة المفردة التي قُيمت تحت B. لا يعيد تمرير هذه القيمة إلى CALCULATE تحويلها إلى تعبير Revenue. أما Recomputed A فتقيم المقياس تحت A، ويتوقع أن تعيد 50. اختر الصيغة الموافقة للسؤال قبل التفكير في القراءة أو الأداء. الخطأ هنا في وقت ومكان التقييم، ولا يصلحه افتراض أن اسم A في الدالة يعيد كل قيمة سبق حسابها.
2. هل يعد حذف عمود مرجع فريد تحسيناً آمناً دائما؟
اعرض الحل المشروح
لا. قد يدعم العمود الحفر التفصيلي أو التسوية أو العلاقات أو الأمان أو مستهلكين تابعين، رغم غيابه عن الصفحة الحالية. احصر هذه الاستخدامات ووثق تغير القدرة المقبول قبل الحذف. نموذج أصغر يفقد وظيفة تحليلية أو أمنية مطلوبة ليس نسخة مكافئة محسنة. يجب أن تقارن نتيجة التحسين بعقد الاستخدام كله، لا بحجم الملف أو سرعة رسم واحد فقط.
أهم ما تعلمته
- تسبق صحة النتائج ومراجعة الاعتماديات تغيير الأداء.
- تحتاج المتغيرات والتعددية والتشخيص حدود معنى ودليل صريحة.