Optimalizácia jazyka DAX pre LuckyTemplates pomocou nástroja DAX Studio – Formula Engines

Keď optimalizujete svoj dátový model a svoj DAX pre LuckyTemplates, je dobré si uvedomiť, že v zákulisí bežia dva motory – vzorec a modul úložiska .

Tieto dva motory spolupracujú, aby vrátili používateľovi potrebné výsledky. Poskytujú súbor výsledkov vo forme tabuľky alebo hodnoty stupnice.

Obsah

Úloha Formulového motora

V tomto článku sa zameriame na motor formuly.

Nástroj vzorcov je nástroj najvyššej úrovne, ktorý riadi celú architektúru dotazu.

Čokoľvek robíte pri vykonávaní dotazu alebo pri vytváraní vypočítaného stĺpca alebo vypočítanej tabuľky, spustí sa mechanizmus vzorcov.

Formulár rozumie dopytom prijatým nielen v jazyku DAX, ale aj v jazyku MDX. Napríklad, keď používate Excel, vytvárate kontingenčné modely založené na kontingenčných tabuľkách a kontingenčné tabuľky v skutočnosti používajú jazyk MDX.

Tu nastupuje formulový motor. Pretože si rozumie s DAX aj MDX, môžete použiť iný model LuckyTemplates. Dotazy odoslané z tohto dátového modelu budú používať jazyk DAX, zatiaľ čo dotazy z pivotného modelu budú používať MDX.

Ako funguje Formula Engine

Pochopenie dopytov pochádzajúcich zo zdroja MDX alebo zo zdroja DAX je len jedným z faktorov výkonu motora vzorcov. Prechádza aj ďalšími krokmi, ktoré vám pomôžu spracovať vaše otázky.

Najprv musí vygenerovať plán dotazov, ktorému bude ukladací mechanizmus rozumieť . Ako nástroj nižšej úrovne, ukladací mechanizmus v skutočnosti nevie, či kontingenčná tabuľka v Exceli alebo vizuál v LuckyTemplates vykonal dotaz.

Pri vytváraní plánu dotazov nástroj vzorcov najprv vytvorí plán logických dotazov a potom vytvorí plán fyzických dotazov. Logický aj fyzický plán dotazov by sa mali navzájom podobať.

Po dokončení fyzického plánu dotazov získa používateľ alebo klientsky nástroj sadu výsledkov. Odtiaľ klientsky nástroj diktuje, ako použije výsledky alebo množinu údajov na zobrazenie konečného výsledku používateľovi.

Hlavné obmedzenia Formulového motora

Pri optimalizácii jazyka DAX pre LuckyTemplates pomocou nástroja DAX Studio hrá vzorec vzorcov obrovskú úlohu. Má to však aj určité obmedzenia.

Po prvé, vzorec vzorcov vždy používa jedno jadro na riadenie celej vašej operácie bez ohľadu na to, koľko jadier CPU je vo vašom systéme k dispozícii .

Keď otvorím Správcu úloh, uvidíte, že môj procesor má šesť jadier.

Optimalizácia jazyka DAX pre LuckyTemplates pomocou nástroja DAX Studio – Formula Engines

Napriek tejto skutočnosti si formulový motor stále vyberie jedno z týchto šiestich jadier, s ktorým bude pracovať, zatiaľ čo zvyšok nechá použiť ukladací engine.

Po druhé, nástroj vzorcov nemá priamy prístup k vašej databáze . Kvôli tomuto obmedzeniu by ste museli ukladať dáta buď do internej pamäte, alebo ich môžete uložiť do databázy a vytvoriť DirectQuery nad touto databázou.

Spolieha sa tiež na ukladací mechanizmus, ktorý získava údaje vo forme dátovej vyrovnávacej pamäte. Nástroj vzorcov potom iteruje túto vyrovnávaciu pamäť údajov, aby pokračoval skôr, ako môže poskytnúť výsledky koncovému používateľovi.

Ako Formula Engine pomáha optimalizovať DAX pre LuckyTemplates

Niekedy, keď sa pokúšate optimalizovať svoj dátový model alebo DAX pre LuckyTemplates, všimnete si, že sa ukladací mechanizmus spomaľuje pri vykonávaní dotazov. V tomto prípade môžete použiť vzorec na dokončenie celého výpočtu na optimalizáciu procesu.

Všimnite si, že ak nástroj vzorcov vytvorí celú tabuľku sám, množina výsledkov vytvorená v procese sa nepoužije v následných dotazoch, ktoré vygeneruje klientsky nástroj, ak sú podobné predtým vykonaným dotazom . Ale v prípade, že ukladací mechanizmus poskytuje dátovú vyrovnávaciu pamäť, potom môže byť táto konkrétna dátová vyrovnávacia pamäť uchovávaná v pamäti, aby mohla optimalizovať požiadavky prichádzajúce z klientskeho nástroja.

Ako to bude fungovať?

Povedzme, že napíšeme dotaz, ktorý bude kompletne vykonaný ukladacím mechanizmom, ale s niektorými aspektmi, ktoré má vypočítať vzorec. V tomto prípade ukladací mechanizmus odošle vyrovnávaciu pamäť údajov späť do mechanizmu vzorcov a táto vyrovnávacia pamäť údajov (v prípade, že je to jednoduchá) môže byť uložená v pamäti.

Teraz, ak podobný dotaz príde o niekoľko sekúnd neskôr, namiesto opätovného skenovania celého dátového modelu použije vzorec alebo ukladací mechanizmus túto konkrétnu dátovú vyrovnávaciu pamäť, aby sa skrátil čas dopytu a používateľská skúsenosť mohla byť vylepšený.

Zníženie zaťaženia Formulového motora

Formulový engine si opäť rozumie s kódmi DAX a MDX.

Ak teda použijete,a ďalšie úlohy, vzorec vzorcov pozná všetky funkcie, ktoré používate v rámci jazyka DAX, a dokáže ich vyriešiť sám. To by však mohlo ovplyvniť výkon dotazu, najmä preto, že vzorec vzorcov sa snaží robiť všetko pomocou jedného jadra.

Preto musíme dbať aj na zníženie zaťaženia motora formuly a zvýšenie zaťaženia motora skladu.

Dobrým príkladom toho, aký rozdielny je výpočet vo vzorcovom motore oproti ukladaciemu stroju, by bolo použitie CROSSJOIN oproti.

Keď používate CROSSJOIN, cez ukladací mechanizmus sa bude prenášať iba obmedzené množstvo údajov. Pokiaľ ide o zvyšok výpočtu, všetko vykoná vzorec. Na porovnanie, použitie SUMMARIZE znamená vykonanie celého dotazu v rámci ukladacieho mechanizmu.

Samozrejme, bude to závisieť aj od toho, ako sa SUMMARIZE použije.

Ak sa SUMMARIZE použije ako najvnútornejšia funkcia, potom bude určite posunutá nadol do ukladacieho mechanizmu. V niektorých prípadoch sa však SUMMARIZE používa v spojení s iným kódom, ktorý vyžaduje fungovanie nástroja vzorcov. V tomto prípade motor formule zakročí a vykoná prácu.

Vedieť, kam ide záťaž, vám môže pomôcť optimalizovať výkon vášho dopytu, najmä ak máte na pamäti, aká je kapacita a obmedzenia pre motory, ktoré máte k dispozícii.

Nástroje, ktoré môžu pomôcť optimalizovať DAX pre LuckyTemplates

Optimalizácia jazyka DAX bude jednoduchšia, ak maximalizujete nástroje, ktoré to umožňujú. DAX Studio je jedným z týchto nástrojov.

Zoberme si príklad skôr, keď vzorec vzorcov prevezme celú záťaž dokončenia výpočtu, keď sa použije funkcia SUMMARIZE. DAX Studio vám môže pomôcť prepísať váš kód spôsobom, ktorý vloží SUMMARIZE do úložného mechanizmu, čím uvoľní záťaž na nástroji vzorcov. To potenciálne zlepšuje výkon vášho dátového modelu a dotazov.

Samozrejme, pri jednoduchých dopytoch by to malo fungovať bez problémov. Existujú aj komplikovanejšie scenáre.

Môžete napríklad vytvoriť zložené modely, ktoré používajú dva úložné mechanizmy v rámci samotného dátového modelu. Jeden by mohol byť pre Vertipaq, zatiaľ čo druhý by bol pre DirectQuery. V tomto prípade musí byť vaša databáza optimalizovaná tak, aby generované dotazy boli zostavené pre konkrétny relačný dátový model.

Povedzme, že máte vo svojom dátumovom modeli dve tabuľky – tabuľku Produkty a tabuľku Predaj. Tabuľka Products sa nachádza v úložisku Vertipaq, zatiaľ čo tabuľka Sales, ktorá je väčšou tabuľkou, je uložená priamo v databáze prostredníctvom pripojenia DirectQuery.

Predpokladajme tiež, že do matice presúvate stĺpec Značka, ako aj mieru celkového predaja, ktorá pochádza z tabuľky Predaj v rámci pripojenia DirectQuery.

V tomto prípade bude musieť motor formuly vykonať operáciu medzi oboma motormi.

Najprv získa stĺpce Product Key a Brand z tabuľky Produkty. Potom získa stĺpce Čistá cena, Množstvo a Produktový kľúč z tabuľky Predaj. Akonáhle bude mať dátovú vyrovnávaciu pamäť z Vertipaqu aj DirectQuery, vzorec bude musieť vziať dátovú vyrovnávaciu pamäť a pokúsiť sa ich spojiť, aby poskytol výsledky koncovému používateľovi.




Záver

Formulový motor skutočne zohráva obrovskú úlohu pri práci s DAX. Je však dôležité, aby ste najskôr porozumeli, ako to funguje, a až potom sa do toho pustite. Zvládnutie toho, ako zabezpečiť bezproblémovú súčinnosť motora vzorcov a úložiska, je kľúčové, najmä ak chcete, aby vaše dopyty DAX fungovali lepšie.

Ako motor najvyššej úrovne v architektúre analytických služieb musí vzorec vzorcov vykonávať množstvo operácií. Akonáhle však pochopíte aj detaily úložného motora, môžete zistiť, ktorú operáciu vložiť do úložného motora a ktorú ponechať v motore vzorca.

V samostatnom návode sa budeme hlbšie zaoberať ukladacím modulom.

Všetko najlepšie,


Sloupec indexu Pandas Drop: Vysvětleno s příklady

Sloupec indexu Pandas Drop: Vysvětleno s příklady

Sloupec indexu Pandas Drop: Vysvětleno s příklady

7 způsobů, jak zkontrolovat, zda řetězec Pythonu obsahuje podřetězec

7 způsobů, jak zkontrolovat, zda řetězec Pythonu obsahuje podřetězec

7 způsobů, jak zkontrolovat, zda řetězec Pythonu obsahuje podřetězec

Prehľad dynamického obsahu Power Automate

Prehľad dynamického obsahu Power Automate

Pochopte, čo je dynamický obsah Power Automate a ako umožňuje používateľom vyberať odkazy na polia z predchádzajúcich krokov alebo zapisovať výrazy.

Změna umístění souboru pomocí parametru dotazu v LuckyTemplates

Změna umístění souboru pomocí parametru dotazu v LuckyTemplates

V tomto tutoriálu se naučíte, jak sdílet soubor s osobou, která není součástí vaší společnosti, pomocí parametru dotazu sql v LuckyTemplates.

Použití funkce Odebrat a nastavení vyskakovacích oken s potvrzením

Použití funkce Odebrat a nastavení vyskakovacích oken s potvrzením

Zjistěte, jak používat funkci odebrání a jak nastavit vyskakovací okna pro potvrzení v aplikaci, kterou jste vytvořili od začátku.

Vizualizace kontextu filtru v LuckyTemplates DAX Studio

Vizualizace kontextu filtru v LuckyTemplates DAX Studio

Naučte se vizualizovat kontext filtru libovolné buňky v tabulce nebo matici v LuckyTemplates DAX Studio pomocí popisků.

Power Automate vytváření toků od nuly

Power Automate vytváření toků od nuly

Naučte se vytvářet toky Power Automate od začátku. Místo použití šablony budeme spouštěče a akce vytvářet sami.

Tip LuckyTemplates: Ako porovnať prvých N pracovných dní

Tip LuckyTemplates: Ako porovnať prvých N pracovných dní

Pozrite si tento tip LuckyTemplates od Briana o tom, ako môžete dynamicky porovnávať prvých N pracovných dní pomocou dotazu Power.

Modelom Power Apps: Nastavenie prostredia a navigácia

Modelom Power Apps: Nastavenie prostredia a navigácia

Získajte informácie o modelových aplikáciách Power Apps, o tom, ako nastaviť prostredie a ako sa v ňom efektívne pohybovať.

Modelom podporované aplikácie Power Apps: Mapy stránok a ako fungujú

Modelom podporované aplikácie Power Apps: Mapy stránok a ako fungujú

Získajte viac informácií o práci s mapami lokalít v modelových aplikáciách Power Apps a objavte rôzne zložitosti a spôsoby, ako sa s nimi vysporiadať.