Měření v LuckyTemplates: Optimalizační tipy a techniky

V tomto tutoriálu se dozvíte, jak optimalizovat míru v LuckyTemplates. Optimalizace opatření ve vaší sestavě zlepšuje výkon vašich kódů při vytváření cenných statistik a dat. Dozvíte se také o různých metodách hodnocení a o tom, jak je použít k optimalizaci zprávy. Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

Obsah

1. Analyzujte výkon kódu

V tomto příkladu musíte optimalizovat tento přehled:

Měření v LuckyTemplates: Optimalizační tipy a techniky

Toto je datový model, který budete používat:

Měření v LuckyTemplates: Optimalizační tipy a techniky

Tabulka Úlohy obsahuje všechny informace týkající se jakékoli úlohy, která byla provedena v daném časovém období.

Tato tabulka je základem všech opatření, která se chystáte optimalizovat:

Měření v LuckyTemplates: Optimalizační tipy a techniky

Nejprve musíte otestovat výkon sestavy.

Přejděte na kartu Zobrazit a vyberte. Poté klikněte na Spustit záznam a obnovit vizuály . Počkejte, až analyzátor vykreslí vizuál.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Jakmile to uděláte, rozbalte seznam Rozdělení pobídek a klikněte na Kopírovat dotaz .

Měření v LuckyTemplates: Optimalizační tipy a techniky

Dále vyberte Externí nástroje a přejděte do DAX Studio a podívejte se na kód, který LuckyTemplates vygeneroval.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Potom vložte zkopírovaný dotaz do pracovního prostoru.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Proměnné V Měření

První proměnná je DateClosed , což je průřez na řídicím panelu. K získání hodnot určitých období v průřezu používá sloupec z tabulky Fakta.

Další proměnnou je JobLost , která kontroluje, zda data Job Lost neobsahují hodnotu False nebo Blank.

Poslední proměnnou je MatrixVisual . Toto je srdce kódu. Zobrazuje souhrnný sloupec generovaný LuckyTemplates k naplnění vizuálů matice. V této matici seskupuje typ ztráty úlohy a vkládá filtry pocházející z řezů. Poté přidá rozšířené sloupce.

Jakmile souhrnný sloupec dokončí provádění, uvidíte výsledky v podokně pod kódem.

Měření v LuckyTemplates: Optimalizační tipy a techniky

LuckyTemplates používá výsledek k naplnění maticových vizuálů.

Studená mezipaměť pro DAX Studio

Dále musíte zkontrolovat čas potřebný k provedení celého kódu. Chcete-li to provést, zapněte Časování serveru a poté vyberte Vymazat mezipaměť a poté spustit .

Měření v LuckyTemplates: Optimalizační tipy a techniky

Když se snažíte optimalizovat míru v LuckyTemplates pomocí, je lepší pracovat podle scénáře studené mezipaměti, aby byl čas, který dostanete, správný. Poté stiskněte F5 a počkejte na dokončení operace na kartě Časování serveru .

Po dokončení můžete vidět, že celková doba provedení je 3,6 sekundy. Většinu času strávil v motoru formule a 57 milisekund strávil v motoru úložiště

Měření v LuckyTemplates: Optimalizační tipy a techniky

Můžete také vidět, že našel 383 dotazů na úložiště. Ze všech těchto dotazů je 327 přetypovaných v paměti, aby je bylo možné znovu použít.

2. Analyzujte opatření v LuckyTemplates

Dále musíte optimalizovat tato 3 stejná opatření.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Tyto míry musíte extrahovat do jiného souboru a připojit jej k datovému modelu, který používáte.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Poté spusťte Časování serveru, abyste viděli čas, který zabírají 3 měření při vyplňování vizuálů.

Výsledky běhu ukazují, že měření trvá 1,85 sekundy k získání výsledku.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Výsledkem je tabulka obsahující 10 řádků a 3 rozšířené sloupce, které patří do souhrnných sloupců.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Sloupec Typ ztráty obsahuje 10 jedinečných hodnot, které kód vypočítá, aby získal procenta pobídek.

Čas, který kód potřebuje, je exponenciálně vysoký. Zde a kdy je potřebujete optimalizovat.

Pobídka RB % v LuckyTemplates

Toto je míra RB Incentive% v LuckyTemplates. Je to jedno ze 3 hlavních měřítek použitých v tomto příkladu.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Můžete vidět, že se snaží vypočítat procento motivace.

Má proměnnou JobType, která načte hodnotu ztraceného typu v aktuálním kontextu filtru. Také kontroluje, zda je v aktuálním kontextu filtru viditelná pouze jedna hodnota. Musíte použít a  funkce tak, že pokaždé, když je splněna podmínka, dává odpovídající výsledek.

Tento kód měření generuje velké množství maziva pro skladování motoru, což prodlužuje celkovou dobu trvání kódu.

Nyní se vraťte do DAX Studio a zkontrolujte množství dotazů úložiště, které měření generuje.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Můžete vidět, že provedení trvalo 600 milisekund a jednoduché načtení dat pro 10 řádků 43 dotazů úložiště.

Data z úložiště

Nyní zkontrolujte data, která jsou požadována z úložiště. V prvním dotazu je typ ztráty zaměstnání a DCOUNT  typu ztráty zaměstnání.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Další dotaz má Jobs Date Closed, což je z průřezu v sestavě.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Ve třetím kódu uvidíte další typ ztráty zaměstnání s ID dat zpětného volání.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Na dalším řádku uvidíte nejdůležitější řádky kódu.

Měření v LuckyTemplates: Optimalizační tipy a techniky

První věc, kterou uvidíte, jsou Přijaté platby, Fakturované a Skutečné výdaje.

Další je funkce WHERE  , která uvádí podmínku a její odpovídající výsledek. Výsledek se bude lišit v závislosti na výběru sliceru a příkazu switch v RB Incentive% opatření.

Také si všimnete, že kód na řádcích 12 a 14 je stejný.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Pokud se posunete doprava, uvidíte, že existují řádky se stejnými dotazy. Dotazy na řádcích jsou řízeny příkazem switch v míře RB Incentive%.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Pokud se vrátíte k měření RB Incentive% v LuckyTemplates, můžete vidět, kolikrát se dotaz opakuje a jak se to odráží v dotazech úložiště.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Logika za IF a přepínačem

Nyní, abyste pochopili, proč jsou dotazy prováděny vícekrát, musíte porozumět logice a funkce SWITCH .

Musíte je provést samostatně v plánu dotazů. Než to však uděláte, nezapomeňte se připojit k databázi a zapnout plán dotazů.

Proveďte příkaz SWITCH  v plánu dotazů. Poté zvýrazněte  výpis a stiskněte enter.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Tím se vygeneruje plán logických dotazů s různými operacemi.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Dále spusťte příkaz IF zvýrazněním příkazu a stisknutím klávesy Enter.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Můžete vidět, že generuje stejný plán logických dotazů.

Je to proto, že kdykoli použijete , modul interně tuto funkci převede na příkaz IF . Ale příkaz SWITCH se doporučuje, protože zvyšuje čitelnost vašeho kódu.

Poté musíte pochopit, jak se kód provádí uvnitř funkce IF nebo SWITCH .

Toto je příklad kódu, který má uvnitř příkaz SWITCH .

Měření v LuckyTemplates: Optimalizační tipy a techniky

Má míry pro Hrubý zisk, Celkový odhad a Fakturováno celkem, což jsou všechny SOUČET různých sloupců. Má také funkci nad typem ztráty zaměstnání a příkazem SWITCH a TRUE .

Když spustíte tento kód, uvidíte logiku funkcí.

První dotaz získá odlišný typ ztráty úloh z tabulky úloh.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Kromě typu ztráty pracovních míst získá také součet odhadu pracovních míst.

Uvnitř podmínky WHERE můžete také vidět hodnoty, které existují ve sloupci Typ ztráty zaměstnání.

Měření v LuckyTemplates: Optimalizační tipy a techniky

3. Použijte metody hodnocení kódu

V jazyce DAX existují 3 metody vyhodnocování kódů:

  • Přísné hodnocení
  • Dychtivé hodnocení
  • IF.Eager Evaluation

Tyto metody vám pomohou optimalizovat kód nebo měření v LuckyTemplates.

1. metoda: Přísné hodnocení

Níže uvedený příklad používá metodu Strict Evaluation.

Logika za tím je, že pokud je kontext typu ztráty zaměstnání roven A, poskytne hrubý zisk. V opačném případě poskytuje celkový odhad. Kód to dělá pro každý řádek v Typu ztráty zaměstnání.

Toto je další příklad měření v LuckyTemplates, který používá Strict Evaluation.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Když tento kód spustíte, vygeneruje 5 dotazů úložiště.

Měření v LuckyTemplates: Optimalizační tipy a techniky

S přísným hodnocením kód poskytuje celkový odhad, pokud je hrubý zisk vynásobený 1,4 větší než průměrný odhad. V opačném případě poskytne hrubý zisk.

Použití Strict Evaluation vytváří více dotazů na úložiště, protože příkaz IF  několikrát kontroluje konkurenci hrubého zisku a nakonec omezí výkon celé operace.

2. metoda: dychtivé hodnocení

Toto je stejný kód jako v předchozím příkladu.

Ale místo toho, aby vypočítal míry uvnitř  příkazu IF , vypočítal vše v předchozím RETURN .

Měření v LuckyTemplates: Optimalizační tipy a techniky

To znamená, že před kontrolou výkazů získá všechny hodnoty Hrubého zisku a Celkového odhadu pro všechny typy ztráty zaměstnání.

Když spustíte tento kód, počet úložišť se sníží na 3.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Zlepšuje výkon celé operace.

V prvním dotazu operace získá Typ ztráty pracovních míst a součet Odhad pracovních míst a Hrubý zisk.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Další dotaz získá součet odhadu úloh ze stáje úloh. To se používá při výpočtu průměrného odhadu.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Poslední dotaz poskytuje odlišný typ ztráty úloh pro hodnoty zapsané v ADDCOLUMNS .

Měření v LuckyTemplates: Optimalizační tipy a techniky

Pomocí Eager Evaluation získáte vše v jediné mezipaměti dat. Data jsou také vyhodnocována a iterována na formulovém motoru. Výkaz IF  vrátí buď Celkový odhad nebo Hrubý zisk v závislosti na hodnocení True nebo False.

Eager Evaluation není vždy nejlepší metodou pro optimalizaci vašich kódů. Přísné hodnocení povede k lepšímu výkonu, pokud máte složité kódy. Vše závisí na funkcích, které používáte v kódu DAX.

Nevýhodou Eager Evaluation je, že pokud vytvoříte cennosti před příkazem IF  nebo  SWITCH  a použijete tyto proměnné uvnitř příkazu, které by nikdy neměly být provedeny, engine bude tyto proměnné stále počítat.

Dychtivé hodnocení Nevýhody

Zde je příklad nevýhody:

V ideálním případě, pokud je typ ztráty zaměstnání roven A, měl by získat hrubý zisk. V opačném případě získá Total Estimate.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Protože ve sloupci Typ ztráty zaměstnání není žádná hodnota, která by se rovnala A, měl by vždy dostat Celkový odhad. Stále však poskytuje hrubý zisk v mezipaměti dat.

Pokud se podíváte na první dotaz, získá Typ ztráty pracovních míst a součet Hrubého zisku a Odhadu pracovních míst.

Měření v LuckyTemplates: Optimalizační tipy a techniky

V dalším dotazu získá z tabulky Jobs odlišný typ ztráty zaměstnání.

Měření v LuckyTemplates: Optimalizační tipy a techniky

3. metoda: IF.EAGER Hodnocení

Další metodou je  vyhodnocení funkce IF.EAGER  , které kopíruje chování vyhodnocení Eager.

Umožňuje vám napsat kód, který představuje přísné hodnocení, a provést jej pomocí Eager Evaluation.

Pokud se podíváte na tento ukázkový kód, je to stejné jako kód Strict Evaluation. Jediný rozdíl je v tom, že to používá funkci IF.EAGER  místo IF .

Měření v LuckyTemplates: Optimalizační tipy a techniky

Před spuštěním kódu se ujistěte, že jste připojeni k modelu LuckyTemplates a zapněte časování serveru. Po dokončení stiskněte F5.

Můžete vidět, že to vygenerovalo 3 dotazy úložiště.

Měření v LuckyTemplates: Optimalizační tipy a techniky

První dotaz získá Typ ztráty zaměstnání a součet Odhadu pracovních míst a Hrubého zisku.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Druhý dotaz získá součet odhadu pracovních míst.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Poslední dotaz získá odlišný typ ztráty úloh z tabulky úloh.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Všimnete si, že provedlo stejné chování jako Eager Evaluation.

Souhrn metod hodnocení

Při snaze zlepšit výkon svých výpočtů musíte mít na paměti následující:

  • Strict Evaluation se používá pro složité kódy. To platí také v případě, kdy nechcete vyhodnocovat všechny hodnoty uvedené v tabulce.
  • Eager Evaluation je lepší použít, pokud jsou vaše kódy jednoduché.
  • Použijte IF.EAGER, pokud chcete psát kódy pomocí Strict Evaluation a spustit je pomocí Eager Evaluation.

Vezměte však na vědomí, že tyto tři metody musíte otestovat, abyste zjistili, co je skutečně nejlepší použít ve vaší zprávě.

4. Optimalizujte opatření v LuckyTemplates

Hlavní lekcí v tomto tutoriálu je optimalizace vašich kódů.

Vraťte se a podívejte se na míru RB Incentive% , která se provádí pomocí Strict Evaluation. Dále to zkuste vyhodnotit pomocí Eager Evaluation.

Začněte vytvořením proměnných a zadáním funkce  RETURN .

Měření v LuckyTemplates: Optimalizační tipy a techniky

Změňte reference měření pomocí proměnných.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Poté potvrďte měření a přejděte do DAX Studio, abyste zjistili, zda zlepšilo výkon.

Ukazuje, že celkový čas je 642 milisekund a celkový počet dotazů úložiště úložiště byl snížen na 39.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Nyní vytvořte proměnné pro všechna data a změňte všechny odkazy na měření na odpovídající proměnné.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Dále potvrďte opatření a spusťte kód ve studiu DAX.

Celková doba provádění a celkový počet dotazů úložiště úložiště byly sníženy z 600 milisekund na 170 milisekund a 43 dotazů na 15 dotazů.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Můžete také vidět, že neexistují žádné duplikáty. Mít proměnné v kódu zlepšuje jejich čitelnost a výkon.

Pokročilá optimalizace pro měření v LuckyTemplates

Dále musíte dále optimalizovat své kódy DAX.

Místo použití, použití funkce.

Měření v LuckyTemplates: Optimalizační tipy a techniky

HASONEVALUE  počítá počet hodnot dostupných v kontextu filtru, což je velmi intenzivní operace. Mezitím ISINSCOPE zkontroluje, zda se dodávaný sloupec používá pro seskupování nebo ne.

Po změně funkcí potvrďte měření a proveďte jej v DAX Studiu.

Můžete vidět, že počet dotazů úložiště úložiště je nyní 12. Celková doba provádění se také stala 105 milisekundami.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Ve 2. dotazu si všimnete ID dat zpětného volání.

Měření v LuckyTemplates: Optimalizační tipy a techniky

To se někdy stává, když použijete SELECTEDVALUE s textovým polem. Když vidíte data zpětného volání, modul úložiště zavolá modul vzorců, aby pomohl vyřešit složitost kódu. To zpomaluje výkon vašeho měření.

Odebrat data zpětného volání

Chcete-li v přehledu dosáhnout lepšího výkonu, musíte odstranit data zpětného volání. Chcete-li to provést, musíte v datovém modelu vytvořit konfigurační tabulku.

Přejděte na možnost Zadat data a vložte data. Pojmenujte tabulku LossTypeConfigTable .

Měření v LuckyTemplates: Optimalizační tipy a techniky

Poté klikněte na Upravit a změňte datový typ sloupce, který chcete importovat.

Datový typ ID typu ztráty by měl být učitelskou hodnotou, aby mohl být použit ve funkci SELECTEDVALUE .

Po načtení do modelu vytvořte vztah mezi tabulkou Jobs a tabulkou LossTypeConfigTable na základě typu ztráty.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Po vytvoření vztahu přejděte do tabulky Úlohy a přidejte nový sloupec. Nazvěte to ID ztráty a poté zadejte vzorec.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Použijte funkci pro konfigurační tabulku a poté extrahujte ID typu ztráty.

Dále se vraťte na míru RB Incentive% a místo textového pole odkazujte na číselné pole. Uvnitř SELECTEDVALUE nahraďte typ ztráty ID ztráty.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Dále upravte všechna opatření uvnitř kódu. Při kontrole typu úlohy použijte místo textových hodnot celočíselnou hodnotu.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Jakmile kód změníte, potvrďte měření a spusťte jej v DAX Studiu.

ID dat zpětného volání je v dotazu eliminováno a doba provádění kódu je zkrácena na 93 milisekund.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Míra RB Incentive% je nyní plně optimalizována.

5. Optimalizujte další opatření v LuckyTemplates

Musíte také optimalizovat míry WR Incentive% a QB Incentive%.

Zkopírujte a vložte přesný kód použitý v RB Incentive% opatření. Poté spusťte 3 opatření dohromady.

Celková doba provádění je optimalizována a snížena z 1855 milisekund na 213 milisekund. Existuje také pouze 12 dotazů na úložiště.

První dva dotazy vytvářejí kontext filtru a zbytek představuje přesný počet hodnot ve sloupci Typ ztráty zaměstnání.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Protože všechna opatření byla optimalizována, spusťte původní kód a podívejte se, jak se výkon změnil. Data ukazují, že se nyní počítá za 1,9 sekundy.

Měření v LuckyTemplates: Optimalizační tipy a techniky

Výkon celého kódu je nyní optimalizován, takže vaše sestava je rychlejší a lepší.




Závěr

V přehledech LuckyTemplates by měla být opatření optimalizována, aby bylo zajištěno, že vaše kódy DAX budou fungovat hladce. Tím se také zlepší celkový výkon vašeho přehledu.

Naučili jste se různé metody optimalizace měření v LuckyTemplates a naučili jste se, jak posoudit, kterou z nich použít v závislosti na kontextu vaší zprávy.


Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Naučte se, jak vytvořit vyhledávací pole PowerApps úplně od začátku a přizpůsobit je tak, aby odpovídalo celkovému tématu vaší aplikace.

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Sklízejte nebo zachycujte hodnotu uvnitř míry a znovu ji použijte v jiném taktu pro dynamické výpočty pomocí SELECTEDVALUE DAX v LuckyTemplates.

Historie verzí v seznamech SharePoint

Historie verzí v seznamech SharePoint

Zjistěte, jak vám historie verzí na SharePointu může pomoci vidět vývoj určitých dat a kolika změn prošla.

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Zde je nástroj pro vytváření sestav a vizuálů, výběr barevných hexadecimálních kódů, který můžete použít ke snadnému získání barev pro vaše sestavy LuckyTemplates.

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Pomocí tabulky období můžete v přehledu snadno zobrazit časové období jako průřez. Použijte M kód k vytvoření dynamického datového výřezu v LuckyTemplates.

Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.