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.
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:
Toto je datový model, který budete používat:
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:
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.
Jakmile to uděláte, rozbalte seznam Rozdělení pobídek a klikněte na Kopírovat dotaz .
Dále vyberte Externí nástroje a přejděte do DAX Studio a podívejte se na kód, který LuckyTemplates vygeneroval.
Potom vložte zkopírovaný dotaz do pracovního prostoru.
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.
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 .
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ůž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í.
Tyto míry musíte extrahovat do jiného souboru a připojit jej k datovému modelu, který používáte.
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.
Výsledkem je tabulka obsahující 10 řádků a 3 rozšířené sloupce, které patří do souhrnných sloupců.
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ůž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ůžete vidět, že provedení trvalo 600 milisekund a jednoduché načtení dat pro 10 řádků 43 dotazů ú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í.
Další dotaz má Jobs Date Closed, což je z průřezu v sestavě.
Ve třetím kódu uvidíte další typ ztráty zaměstnání s ID dat zpětného volání.
Na dalším řádku uvidíte nejdůležitější řádky kódu.
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ý.
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%.
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ě.
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.
Tím se vygeneruje plán logických dotazů s různými operacemi.
Dále spusťte příkaz IF zvýrazněním příkazu a stisknutím klávesy Enter.
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á 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.
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í.
3. Použijte metody hodnocení kódu
V jazyce DAX existují 3 metody vyhodnocování kódů:
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.
Když tento kód spustíte, vygeneruje 5 dotazů úložiště.
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 .
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.
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.
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.
Poslední dotaz poskytuje odlišný typ ztráty úloh pro hodnoty zapsané v ADDCOLUMNS .
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.
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.
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.
V dalším dotazu získá z tabulky Jobs odlišný typ ztráty zaměstnání.
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 .
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ě.
První dotaz získá Typ ztráty zaměstnání a součet Odhadu pracovních míst a Hrubého zisku.
Druhý dotaz získá součet odhadu pracovních míst.
Poslední dotaz získá odlišný typ ztráty úloh z tabulky úloh.
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í:
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 .
Změňte reference měření pomocí proměnných.
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.
Nyní vytvořte proměnné pro všechna data a změňte všechny odkazy na měření na odpovídající proměnné.
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ůž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.
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.
Ve 2. dotazu si všimnete ID dat zpětného volání.
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í.
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 .
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.
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.
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.
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.
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í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í.
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.
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.
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.
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.
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.
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.
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.
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.
Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.
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.
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.
Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.