Ітератори та контекстні переходи в запитах 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 . Це зменшує роботу механізму формул і максимізує можливості механізму зберігання.

Leave a Comment

Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

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

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

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