تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
في هذا البرنامج التعليمي ، ستتعلم كيفية تحسين مقياس في LuckyTemplates. يؤدي تحسين المقاييس في تقريرك إلى تحسين أداء أكوادك في إنتاج رؤى وبيانات قيّمة. ستتعرف أيضًا على طرق التقييم المختلفة وكيفية تطبيقها لتحسين تقريرك. يمكنك مشاهدة الفيديو الكامل لهذا البرنامج التعليمي أسفل هذه المدونة.
جدول المحتويات
1. تحليل أداء المدونة
في هذا المثال ، تحتاج إلى تحسين هذا التقرير:
هذا هو نموذج البيانات الذي ستستخدمه:
يحتوي جدول الوظائف على جميع المعلومات المتعلقة بأي وظيفة تم تنفيذها في فترة زمنية معينة.
هذا الجدول هو أساس جميع المقاييس التي ستقوم بتحسينها:
أولاً ، تحتاج إلى اختبار أداء التقرير.
انتقل إلى علامة التبويب عرض واختر محلل الأداء . ثم ، انقر فوق بدء التسجيل وتحديث المرئيات . انتظر المحلل لتقديم الصورة المرئية.
بمجرد الانتهاء من ذلك ، قم بإسقاط قائمة Incentive Breakdown وانقر فوق Copy Query .
بعد ذلك ، حدد أدوات خارجية للانتقال إلى DAX Studio وإلقاء نظرة على الكود الذي أنشأه LuckyTemplates.
ثم الصق الاستعلام المنسوخ داخل مساحة العمل.
المتغيرات في القياس
المتغير الأول هو DateClosed وهو أداة تقطيع اللحم على لوحة القيادة. يستخدم عمودًا من جدول الحقائق للحصول على قيم فترات معينة في أداة تقطيع الشرائح.
المتغير التالي هو JobLost الذي يتحقق من False أو Blank لبيانات Job Lost.
المتغير الأخير هو MatrixVisual . هذا هو قلب الكود. يعرض العمود الملخص الذي تم إنشاؤه بواسطة LuckyTemplates لتعبئة مرئيات المصفوفة. يقوم بتجميع نوع فقدان الوظيفة في هذه المصفوفة ويحقن المرشحات القادمة من أدوات التقطيع. ثم تضيف أعمدة ممتدة.
بمجرد أن يكمل عمود التلخيص التنفيذ ، سترى النتائج في الجزء الموجود أسفل الكود.
يستخدم LuckyTemplates النتيجة لتعبئة مرئيات المصفوفة.
ذاكرة التخزين المؤقت الباردة لاستوديو DAX
بعد ذلك ، تحتاج إلى التحقق من الوقت المستغرق في تنفيذ الكود بالكامل. للقيام بذلك ، قم بتشغيل توقيتات الخادم ثم اختر مسح ذاكرة التخزين المؤقت ثم تشغيل .
عندما تحاول تحسين مقياس في LuckyTemplates باستخدام DAX Studio ، فمن الأفضل أن تعمل في ظل سيناريو ذاكرة التخزين المؤقت الباردة بحيث يكون الوقت الذي تحصل عليه صحيحًا. بعد ذلك ، اضغط على F5 وانتظر حتى تكتمل العملية في علامة التبويب توقيتات الخادم .
بمجرد اكتماله ، يمكنك أن ترى أن إجمالي وقت التنفيذ هو 3.6 ثانية. قضى معظم الوقت في محرك الصيغة وقضى 57 مللي ثانية في محرك التخزين
يمكنك أيضًا أن ترى أنه عثر على 383 استفسارًا عن محرك التخزين. من بين كل تلك الاستفسارات ، هناك 327 تم وضعها في الذاكرة حتى يمكن إعادة استخدامها.
2. تحليل مقياس في LuckyTemplates
بعد ذلك ، تحتاج إلى تحسين هذه المقاييس الثلاثة المتطابقة.
يجب عليك استخراج هذه الإجراءات في ملف مختلف وتوصيله بنموذج البيانات الذي تستخدمه.
بعد ذلك ، ابدأ توقيتات الخادم لمعرفة الوقت الذي تستغرقه الإجراءات الثلاثة في ملء المرئيات.
تظهر نتائج التشغيل أن المقاييس تستغرق 1.85 ثانية لاسترداد النتيجة.
تظهر النتيجة جدولاً يتألف من 10 صفوف و 3 أعمدة ممتدة تنتمي إلى الأعمدة الملخصة.
يحتوي عمود نوع الخسارة على 10 قيم فريدة يقوم الرمز بحسابها للحصول على النسب المئوية للحوافز.
الوقت الذي يستغرقه الكود مرتفع بشكل كبير. هذا هو المكان والوقت الذي تحتاج فيه إلى تحسينها.
مقياس حافز RB في LuckyTemplates
هذا مقياس٪ حافز RB في LuckyTemplates. إنه أحد المقاييس الثلاثة الرئيسية المستخدمة في هذا المثال.
يمكنك أن ترى أنه يحاول حساب نسبة الحوافز.
يحتوي على متغير ، JobType ، والذي يسترد قيمة Lost Type في سياق عامل التصفية الحالي. يتحقق أيضًا مما إذا كانت هناك قيمة واحدة فقط مرئية في سياق عامل التصفية الحالي. تحتاج إلى استخدام دالة بحيث في كل مرة يتم فيها استيفاء شرط ما ، فإنها تعطي النتيجة المقابلة.
يولد رمز القياس هذا الكثير من شحم محرك التخزين مما يزيد من الوقت في المدة الإجمالية للكود.
الآن ، ارجع إلى DAX Studio للتحقق من مقدار استعلامات محرك التخزين التي ينشئها الإجراء.
يمكنك أن ترى أن الأمر استغرق 600 مللي ثانية للتنفيذ و 43 استعلامًا لمحركات التخزين لاسترداد البيانات ببساطة للصفوف العشرة.
الآن ، تحقق من البيانات المطلوبة من محرك التخزين. في الاستعلام الأول ، يوجد نوع فقدان الوظائف و DCOUNT من نوع فقدان الوظائف.
يحتوي الاستعلام التالي على "تاريخ المهام مغلق" وهو من أداة تقطيع الشرائح في التقرير.
في الكود الثالث ، سترى نوع خسارة وظائف آخر بمعرف بيانات رد الاتصال.
في سطر آخر ، سترى أهم سطور التعليمات البرمجية.
أول شيء تراه هو مدفوعات الوظائف المستلمة والفواتير والنفقات الفعلية.
التالي هو دالة WHERE التي تنص على الشرط والنتيجة المقابلة لها. ستختلف النتيجة بناءً على اختيار القطاعة وبيان التبديل في مقياس RB Incentive٪.
ستلاحظ أيضًا أن الشفرة الموجودة في السطرين 12 و 14 هي نفسها.
إذا قمت بالتمرير إلى اليمين ، يمكنك أن ترى أن هناك سطورًا لها نفس الاستعلامات. يتم توجيه الاستعلامات الموجودة على الأسطر بواسطة عبارة التبديل في مقياس نسبة الحوافز RB.
إذا عدت إلى مقياس RB Incentive٪ في LuckyTemplates ، يمكنك رؤية عدد مرات تكرار الاستعلام وكيف ينعكس في استعلامات محرك التخزين.
المنطق وراء IF والتبديل
الآن ، لفهم سبب تنفيذ الاستعلامات عدة مرات ، تحتاج إلى فهم منطق وظائف و SWITCH .
تحتاج إلى تنفيذها بشكل منفصل في خطة الاستعلام. ولكن قبل القيام بذلك ، تأكد من الاتصال بقاعدة البيانات وتشغيل خطة الاستعلام.
قم بتنفيذ جملة SWITCH في خطة الاستعلام. بعد ذلك ، قم بتمييز العبارة ثم اضغط على Enter.
سيؤدي هذا إلى إنشاء خطة استعلام منطقية بعمليات مختلفة.
بعد ذلك ، قم بتنفيذ عبارة IF عن طريق تمييز العبارة والضغط على Enter.
يمكنك أن ترى أنه ينشئ نفس خطة الاستعلام المنطقي.
هذا لأنه كلما استخدمت دالة SWITCH ، يقوم المحرك داخليًا بتحويل هذه الوظيفة إلى جملة IF . ولكن يوصى باستخدام عبارة SWITCH لأنها تزيد من سهولة قراءة التعليمات البرمجية الخاصة بك.
بعد ذلك ، تحتاج إلى فهم كيفية تنفيذ رمز داخل وظيفة IF أو SWITCH .
هذا رمز مثال يحتوي على عبارة SWITCH بالداخل.
يحتوي على مقاييس لإجمالي الربح وتقدير إجمالي وإجمالي فواتير وهي كلها مجموع الأعمدة المختلفة. كما أن لديها دالة فوق نوع فقدان الوظائف وبيان SWITCH و TRUE .
عند تنفيذ هذا الرمز ، سترى المنطق وراء الوظائف.
يحصل الاستعلام الأول على نوع فقدان الوظائف المميز من جدول الوظائف.
بصرف النظر عن نوع فقدان الوظائف ، فإنه يحصل أيضًا على مجموع تقدير الوظائف.
داخل شرط WHERE ، يمكنك أيضًا رؤية القيم الموجودة في عمود نوع فقدان الوظائف.
3. استخدام أساليب تقييم التعليمات البرمجية
في DAX ، توجد 3 طرق لتقييم الأكواد:
ستساعدك هذه الطرق على تحسين رمز أو مقياس في LuckyTemplates.
الطريقة الأولى: التقييم الصارم
يستخدم المثال الموضح أدناه طريقة التقييم الصارم.
المنطق وراء ذلك هو أنه إذا كان سياق نوع فقدان الوظائف يساوي A ، فسيوفر إجمالي الربح. وإلا فإنه يعطي التقدير الإجمالي. يقوم الكود بهذا لكل صف في نوع خسارة الوظائف.
هذا مثال آخر على مقياس في LuckyTemplates يستخدم التقييم الصارم.
عند تنفيذ هذا الرمز ، سيتم إنشاء 5 استعلامات لمحرك التخزين.
مع التقييم الصارم ، يوفر الكود التقدير الإجمالي إذا كان إجمالي الربح مضروبًا في 1.4 أكبر من متوسط التقدير. خلاف ذلك ، فإنه سيعطي إجمالي الربح.
ينتج عن استخدام التقييم الصارم المزيد من استعلامات محرك التخزين لأن عبارة IF تتحقق من منافسة إجمالي الربح عدة مرات وستؤدي في النهاية إلى إعاقة أداء العملية بأكملها.
الطريقة الثانية: التقييم الحثيث
هذا هو نفس رمز المثال السابق.
ولكن بدلاً من حساب المقاييس داخل جملة IF ، قامت بحساب كل شيء في قبل RETURN .
هذا يعني أنه قبل التحقق من البيانات ، تحصل على جميع قيم إجمالي الربح والتقدير الإجمالي لجميع أنواع فقدان الوظائف.
عند تنفيذ هذا الرمز ، يتم تقليل عدد محركات التخزين إلى 3.
يحسن أداء العملية بأكملها.
في استعلام التشغيل الأول ، يحصل على نوع خسارة الوظائف ومجموع تقدير الوظائف وإجمالي الربح.
يحصل الاستعلام التالي على مجموع تقدير الوظائف من مستقرة الوظائف. يستخدم هذا في حساب متوسط التقدير.
يعطي الاستعلام الأخير نوع فقدان الوظائف المميز للقيم المكتوبة في ADDCOLUMNS .
يؤدي استخدام التقييم الحثيث إلى الحصول على كل شيء في ذاكرة تخزين مؤقت واحدة للبيانات. يتم أيضًا تقييم البيانات وتكرارها على محرك الصيغة. ستُرجع عبارة IF إما التقدير الإجمالي أو إجمالي الربح اعتمادًا على التقييم صواب أو خطأ .
التقييم الحثيث ليس دائمًا أفضل طريقة لتحسين رموزك. سيؤدي التقييم الصارم إلى أداء أفضل إذا كان لديك رموز معقدة. كل هذا يتوقف على الوظائف التي تستخدمها داخل كود DAX.
يتمثل الجانب السلبي في التقييم الحثيث في أنك إذا قمت بإنشاء أشياء ثمينة قبل عبارة IF أو SWITCH واستخدمت تلك المتغيرات داخل العبارة التي لا ينبغي تنفيذها مطلقًا ، فسيظل المحرك يحسب هذه المتغيرات.
فيما يلي مثال على الجانب السلبي:
من الناحية المثالية ، إذا كان نوع خسارة الوظائف يساوي A ، فيجب أن يحصل على إجمالي الربح. خلاف ذلك ، فإنه يحصل على التقدير الإجمالي.
نظرًا لعدم وجود قيمة داخل عمود نوع فقدان الوظيفة تساوي A ، يجب أن تحصل دائمًا على تقدير إجمالي. ومع ذلك ، فإنه لا يزال يوفر إجمالي الربح في ذاكرة التخزين المؤقت للبيانات.
إذا نظرت إلى الاستعلام الأول ، فستحصل على نوع خسارة الوظائف ومجموع إجمالي ربح الوظائف وتقديرها.
في الاستعلام التالي ، تحصل على نوع مميز لخسارة الوظائف من جدول الوظائف.
الطريقة الثالثة: تقييم IF.EAGER
الطريقة التالية هي تقييم وظيفة IF.EAGER الذي يكرر سلوك تقييم Eager.
يتيح لك كتابة رمز يمثل التقييم الصارم وتنفيذه باستخدام التقييم الحثيث.
إذا نظرت إلى نموذج التعليمات البرمجية هذا ، فستجد أنه يشبه رمز التقييم الصارم. الاختلاف الوحيد هو أن هذا يستخدم الدالة IF.EAGER بدلاً من IF .
قبل تنفيذ التعليمات البرمجية ، تأكد من الاتصال بنموذج LuckyTemplates وتشغيل توقيت الخادم. بمجرد الانتهاء ، اضغط على F5.
يمكنك أن ترى أنه تم إنشاء 3 استعلامات لمحرك التخزين.
يحصل الاستعلام الأول على نوع خسارة الوظائف ومجموع تقدير الوظائف وإجمالي الربح.
يحصل الاستعلام الثاني على مجموع "تقدير الوظائف".
يحصل الاستعلام الأخير على نوع فقدان الوظائف المميز من جدول الوظائف.
ستلاحظ أنه نفذ نفس سلوك التقييم الحثيث.
ملخص طرق التقييم
في محاولة لتحسين أداء حساباتك ، عليك أن تتذكر ما يلي:
لكن لاحظ أنه يجب عليك اختبار هذه الطرق الثلاث لمعرفة الأفضل حقًا لاستخدامه في تقريرك.
4. تحسين مقياس في LuckyTemplates
الدرس الرئيسي في هذا البرنامج التعليمي هو تحسين الرموز الخاصة بك.
ارجع وانظر إلى مقياس ٪ حوافز RB الذي يتم تنفيذه باستخدام التقييم الصارم. بعد ذلك ، حاول تقييمه باستخدام التقييم الحثيث.
ابدأ بإنشاء متغيرات وإدخال وظيفة RETURN .
قم بتغيير مراجع القياس بالمتغيرات.
بعد ذلك ، قم بتأكيد الإجراء وانتقل إلى DAX Studio لمعرفة ما إذا كان قد أدى إلى تحسين الأداء.
يُظهر أن الوقت الإجمالي هو 642 مللي ثانية وأن العدد الإجمالي لاستعلامات محرك التخزين قد تم تقليله إلى 39.
الآن ، قم بإنشاء المتغيرات لجميع البيانات وقم بتغيير جميع مراجع القياس إلى المتغيرات المقابلة لها.
بعد ذلك ، قم بتأكيد الإجراء وتنفيذ الكود في استوديو DAX.
تم تقليل إجمالي وقت التنفيذ والمقدار الإجمالي لاستعلامات محرك التخزين من 600 مللي ثانية إلى 170 مللي ثانية و 43 استعلامًا إلى 15 استعلامًا ، على التوالي.
يمكنك أيضًا ملاحظة عدم وجود تكرارات. وجود المتغيرات في التعليمات البرمجية الخاصة بك يحسن قابليتها للقراءة والأداء.
تحسين متقدم لمقياس في LuckyTemplates
بعد ذلك ، تحتاج إلى تحسين أكواد DAX بشكل أكبر.
بدلاً من استخدام ، استخدم دالة .
تحسب HASONEVALUE عدد القيم المتاحة في سياق المرشح وهي عملية مكثفة للغاية. في غضون ذلك ، يتحقق ISINSCOPE مما إذا كان العمود الذي يتم توفيره يستخدم للتجميع أم لا.
بعد تغيير الوظائف ، قم بتأكيد الإجراء وتنفيذه في DAX Studio.
يمكنك أن ترى أن عدد استعلامات مشغل التخزين هو الآن 12. كما أصبح إجمالي وقت التنفيذ 105 مللي ثانية.
في الاستعلام الثاني ، ستلاحظ معرف بيانات رد الاتصال.
يحدث هذا أحيانًا عند استخدام SELECTEDVALUE مع حقل النص. عندما ترى بيانات رد الاتصال ، يستدعي محرك التخزين محرك الصيغة للمساعدة في حل تعقيد الكود. هذا يبطئ أداء القياس الخاص بك.
تحتاج إلى إزالة بيانات رد الاتصال للحصول على أداء أفضل في تقريرك. للقيام بذلك ، تحتاج إلى إنشاء جدول تكوين في نموذج البيانات.
انتقل إلى خيار إدخال البيانات والصق البيانات. اسم الجدول LossTypeConfigTable .
بعد ذلك ، انقر فوق تحرير لتغيير نوع بيانات العمود الذي ستقوم باستيراده.
يجب أن يكون نوع بيانات معرّف نوع الخسارة قيمة مدرس حتى يمكن استخدامه داخل دالة SELECTEDVALUE .
بمجرد تحميله في النموذج ، قم بإنشاء علاقة بين جدول الوظائف وجدول LossTypeConfigTable استنادًا إلى نوع الخسارة.
بعد إنشاء علاقة ، انتقل إلى جدول الوظائف وأضف عمودًا جديدًا. أطلق عليه معرف الخسارة ثم أدخل الصيغة.
استخدم الدالة لجدول التكوين ثم قم باستخراج معرف نوع الخسارة.
بعد ذلك ، ارجع إلى مقياس RB Incentive٪ وقم بالإشارة إلى الحقل الرقمي بدلاً من حقل النص. داخل SELECTEDVALUE ، استبدل نوع الخسارة بمعرف الخسارة.
بعد ذلك ، قم بتعديل جميع الإجراءات داخل الكود. استخدم قيمة عدد صحيح بدلاً من القيم النصية في التحقق من نوع الوظيفة.
بمجرد تغيير الرمز ، قم بتأكيد الإجراء وتنفيذه في DAX Studio.
يتم حذف معرف بيانات رد الاتصال في الاستعلام ويتم تقليل وقت تنفيذ الكود إلى 93 مللي ثانية.
تم تحسين مقياس نسبة حوافز RB بالكامل الآن.
5. تحسين الإجراءات الأخرى في LuckyTemplates
تحتاج أيضًا إلى تحسين إجراءات WR Incentive٪ و QB Incentive٪.
انسخ والصق الكود الدقيق المستخدم في مقياس RB Incentive٪. بعد ذلك ، قم بتشغيل المقاييس الثلاثة معًا.
تم تحسين إجمالي وقت التنفيذ وتقليله من 1855 مللي ثانية إلى 213 مللي ثانية. يوجد أيضًا 12 استعلامًا عن محرك التخزين فقط.
ينشئ أول استعلامين سياق عامل التصفية ويمثل الباقي العدد الدقيق للقيم داخل عمود نوع فقدان الوظائف.
نظرًا لأنه تم تحسين جميع المقاييس ، قم بتشغيل الكود الأصلي وانظر كيف تغير الأداء. تظهر البيانات أنه يتم الآن حسابه في 1.9 ثانية.
تم الآن تحسين أداء الكود بالكامل ، مما يجعل تقريرك أسرع وأفضل.
تحسين وظائف DAX باستخدام هذه الدورة التدريبية الجديدة ،
تحويلات بسيطة في LuckyTemplates للحصول على بيانات محسّنة أكثر ،
قم بتحسين صيغ LuckyTemplates باستخدام DAX المتقدم
خاتمة
في تقارير LuckyTemplates ، يجب تحسين الإجراءات لضمان تشغيل أكواد DAX بسلاسة. يؤدي هذا أيضًا إلى تحسين الأداء العام لتقريرك.
لقد تعلمت الطرق المختلفة لتحسين مقياسك في LuckyTemplates وتعلمت كيفية تقييم الطريقة التي يجب استخدامها وفقًا لسياق تقريرك.
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.