Оптимізація DAX для LuckyTemplates за допомогою DAX Studio – механізми формул

Коли ви оптимізуєте свою модель даних і DAX для LuckyTemplates, варто пам’ятати, що за лаштунками працюють два механізми — механізм формул і механізм зберігання .

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

Зміст

Роль двигуна формул

У цій статті ми зосередимося на механізмі формул.

Механізм формул — це механізм верхнього рівня, який керує всією архітектурою запиту.

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

Механізм формул розуміє запити, отримані не лише в DAX, а й у MDX. Наприклад, коли ви використовуєте Excel, ви створюєте зведені моделі на основі зведених таблиць, а зведені таблиці фактично використовують мову MDX.

Тут починає працювати механізм формул. Оскільки він розуміє і DAX, і MDX, ви можете використовувати іншу модель LuckyTemplates. Запити, надіслані з цієї моделі даних, використовуватимуть DAX, тоді як запити, що надходять із зведеної моделі, використовуватимуть MDX.

Як працює формула

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

По-перше, він має створити план запиту, який розуміє механізм зберігання . Будучи механізмом нижчого рівня, механізм зберігання фактично не знає, чи виконали запит зведена таблиця в Excel або візуал у LuckyTemplates.

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

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

Основні обмеження механізму формул

Механізм формул відіграє величезну роль, коли ви оптимізуєте DAX для LuckyTemplates за допомогою DAX Studio. Однак він також має деякі обмеження.

По-перше, механізм формули завжди використовує одне ядро ​​для керування всією роботою, незалежно від того, скільки ядер ЦП доступно у вашій системі .

Коли я відкрию диспетчер завдань, ви побачите, що мій ЦП має шість ядер.

Оптимізація DAX для LuckyTemplates за допомогою DAX Studio – механізми формул

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

По-друге, механізм формул не має прямого доступу до вашої бази даних . Через це обмеження вам доведеться зберігати дані або у внутрішній пам’яті, або ви можете зберегти їх у базі даних і створити DirectQuery над цією базою даних.

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

Як Formula Engine допомагає оптимізувати DAX для LuckyTemplates

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

Зауважте, що якщо механізм формул завершує створення всієї таблиці самостійно, набір результатів, створений у процесі, не використовуватиметься в наступних запитах, які буде згенеровано клієнтським інструментом, якщо вони схожі на запити, виконані раніше . Але якщо система зберігання надає кеш даних, то цей конкретний кеш даних можна зберігати в пам’яті, щоб він міг оптимізувати запити, що надходять від клієнтського інструменту.

Як це буде працювати?

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

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

Зменшення навантаження на двигун формули

Знову ж таки, механізм формул розуміє коди DAX і MDX.

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

Ось чому нам також потрібно пам’ятати про зменшення навантаження на механізм формул і збільшення навантаження на механізм зберігання.

Хорошим прикладом того, наскільки відрізняються обчислення в системі формул і системі зберігання даних, може бути використання CROSSJOIN проти.

Коли ви використовуєте CROSSJOIN, лише обмежена кількість даних проходитиме через механізм зберігання. Що стосується решти обчислень, то все це буде виконано механізмом формул. Для порівняння, використання SUMMARIZE означає виконання всього запиту в системі зберігання.

Звичайно, це також залежатиме від того, як використовується SUMMARIZE.

Якщо SUMMARIZE використовується як внутрішня функція, тоді її точно буде переміщено до механізму зберігання. Але в деяких випадках SUMMARIZE використовується в поєднанні з іншим кодом, для роботи якого потрібна система формул. У цьому випадку механізм формул втрутиться і виконає роботу.

Знання того, куди спрямовується навантаження, може допомогти вам оптимізувати продуктивність вашого запиту, особливо якщо ви пам’ятаєте про потужність і обмеження механізмів, які є у вашому розпорядженні.

Інструменти, які можуть допомогти оптимізувати DAX для LuckyTemplates

Оптимізувати DAX буде легше, якщо ви максимізуєте інструменти, які це роблять. DAX Studio — один із таких інструментів.

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

Звичайно, це має безперебійно працювати для простих запитів. Є й більш складні сценарії.

Наприклад, ви можете створювати складені моделі, які використовують два механізми зберігання в самій моделі даних. Один може бути для Vertipaq, а інший — для DirectQuery. У цьому випадку ваша база даних має бути оптимізована таким чином, щоб згенеровані запити створювалися для конкретної реляційної моделі даних.

Припустімо, у вашій моделі дат є дві таблиці — таблиця «Продукція» та таблиця «Продажі». Таблиця Products знаходиться в сховищі Vertipaq, тоді як таблиця Sales, будучи більшою таблицею, зберігається безпосередньо в базі даних через підключення DirectQuery.

Припустімо також, що ви перетягуєте стовпець «Бренд» у матрицю, а також показник «Загальний обсяг продажів», який надходить із таблиці «Продажі» в межах підключення DirectQuery.

У цьому випадку механізм формули повинен буде виконувати операцію між обома двигунами.

По-перше, він отримає стовпці "Ключ продукту" та "Бренд" із таблиці "Продукти". Потім він отримає стовпці Чиста ціна, Кількість і Ключ продукту з таблиці Продажі. Отримавши кеш даних від Vertipaq і DirectQuery, механізм формул повинен взяти кеш даних і спробувати об’єднати їх, щоб надати результати кінцевому користувачеві.




Висновок

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

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

Ми розглянемо глибше механізм зберігання в окремому посібнику.

Все найкраще,


Змініть формати дати за допомогою редактора 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

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