Ітератори та контекстні переходи в запитах DAX

У цьому підручнику буде обговорюватися перехід контексту та вкладені ітератори. Ви дізнаєтесь про важливість цих об’єктів і те, як вони можуть бути хорошим джерелом для оптимізації.

Якщо ви пам’ятаєте, перехід контексту відбувається, коли контекст рядка змінюється на еквівалентний контекст фільтра. Ви повинні знати, що відбувається, коли в ітераторах відбувається перехід контексту, оскільки він часто може генерувати повільні результати.

Зміст

Вкладені ітератори проти CALCULATE

Якщо контекстний перехід викликається під час ітерації, створюється таблиця матеріалізації. Це означає, що перехід контексту викликається за допомогою формул у вашому DAX. Таблиця – це нестиснуті дані, які надсилаються до механізму формул.

Щоб продемонструвати, перший показник стосується великих продажів, який отримує поточну ціну, якщо вона більше або дорівнює 500.

Ітератори та контекстні переходи в запитах DAX

Наступний показник — це середнє значення великих продажів із вкладеними ітераторами.

Ітератори та контекстні переходи в запитах DAX

Останній показник отримує середнє значення великих продажів без вкладеного ітератора та CallBackDataID.

Ітератори та контекстні переходи в запитах DAX

Виконайте вимірювання за допомогою вкладеного ітератора. Обов’язково очистіть кеш перед запуском, а потім увімкніть параметри часу сервера та план запитів.

Ітератори та контекстні переходи в запитах DAX

Ви бачите, що було створено 3 сканування, 2 CallBackDataID і 15 003 рядки. Це викликає занепокоєння, оскільки для виводу є лише 101 рядок. Це сталося тому, що міра має два ітератори або функції X.

Це повністю розгорнута форма вимірювання, яке було виконано:

Ітератори та контекстні переходи в запитах DAX

Він повторює таблицю Fact Sales. Потім він повторює знову з використанням CallBackDataID. Скорочений формат цього заходу має на увазіфункція, яка викликає перехід контексту та матеріалізує таблицю. Ось чому він витягнув 15 003 рядки, навіть якщо для виведення є лише 101 рядок.

Запустіть іншу міру, яка не має вкладених ітераторів. Він все ще повторює таблицю Fact Sales за допомогою AVERAGEX , але поточна ціна знаходиться поза функцією. Він відфільтровує продукти, поточна ціна яких перевищує або дорівнює 500, а потім обчислює середнє значення.

Ітератори та контекстні переходи в запитах DAX

Ви бачите, що він має лише 2 сканування, 104 рядки та не має CallBackDataID. Отже, якщо ви використовуєте CALCULATE , ви можете позбутися вкладених ітераторів і CallBackDataIDs .




Висновок

Є багато причин повільної роботи DAX. Одна з них пов’язана з вкладеними ітераторами, які викликають непотрібні контекстні переходи. Ці ітератори матеріалізують більше рядків, ніж потрібно, через що ваші запити сповільнюються.

Найкращим рішенням для цього є розмістити його всередині CALCULATE . Це зменшує роботу механізму формул і максимізує можливості механізму зберігання.


Що таке Power Query та мова M: детальний огляд

Що таке Power Query та мова M: детальний огляд

Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.

Створення звіту з розбивкою на сторінки: додавання текстів і зображень

Створення звіту з розбивкою на сторінки: додавання текстів і зображень

Дізнайтеся, як створити звіт із розбивкою на сторінки, додати тексти та зображення, а потім експортувати звіт у різні формати документів.

Функція автоматизації SharePoint | Вступ

Функція автоматизації SharePoint | Вступ

Дізнайтеся, як використовувати функцію автоматизації SharePoint для створення робочих процесів і допомоги в мікрокеруванні користувачами, бібліотеками та списками SharePoint.

Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!

Підсумки в LuckyTemplates за допомогою DAX

Підсумки в LuckyTemplates за допомогою DAX

Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.

Змінні LuckyTemplates Dax постійні: що це означає?

Змінні LuckyTemplates Dax постійні: що це означає?

Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.

Діаграма нахилу LuckyTemplates: огляд

Діаграма нахилу LuckyTemplates: огляд

Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.

Колірні теми LuckyTemplates для однорідної візуалізації

Колірні теми LuckyTemplates для однорідної візуалізації

Відкрийте для себе кольорові теми в LuckyTemplates. Це необхідно для того, щоб ваші звіти та візуалізації виглядали та працювали без проблем.

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.