Iterátory a kontextové přechody v dotazech DAX

Tento tutoriál se bude zabývat přechodem kontextu a vnořenými iterátory. Dozvíte se, jak důležité jsou tyto entity a jak mohou být dobrým zdrojem pro optimalizaci.

Pokud si vzpomínáte, k přechodu kontextu dojde, když se kontext řádku změní na ekvivalentní kontext filtru. Musíte si být vědomi toho, co se děje, když ve vašich iterátorech dojde k přechodu kontextu, protože to může často generovat pomalé výsledky.

Obsah

Vnořené iterátory versus CALCULATE

Pokud je kontextový přechod vyvolán během iterace, vytvoří se materializační tabulka. To znamená, že kontextový přechod je vyvolán prostřednictvím vzorců ve vašem DAX. Tabulka je nekomprimovaná data, která se odesílají do vzorce.

Abychom demonstrovali, první měření je pro velké prodeje, které získá aktuální cenu, pokud je větší nebo rovna 500.

Iterátory a kontextové přechody v dotazech DAX

Další měření je pro průměr velkého prodeje s vnořenými iterátory.

Iterátory a kontextové přechody v dotazech DAX

Poslední měření získá průměr velkého prodeje bez vnořeného iterátoru a CallBackDataID.

Iterátory a kontextové přechody v dotazech DAX

Spusťte měření s vnořeným iterátorem. Před spuštěním nezapomeňte vymazat mezipaměť a poté zapněte časování serveru a plán dotazů.

Iterátory a kontextové přechody v dotazech DAX

Můžete vidět, že to vygenerovalo 3 skeny, 2 CallBackDataID a 15 003 řádků. To je důvod k obavám, protože výstup má pouze 101 řádků. To se stalo, protože míra má dva iterátory nebo funkce X.

Toto je plně rozšířená forma opatření, které bylo spuštěno:

Iterátory a kontextové přechody v dotazech DAX

Iteruje tabulku faktických prodejů. Poté to znovu zopakuje pomocí CallBackDataID pomocí. Zkrácený formát tohoto opatření má implicitnífunkce, která vyvolá kontextový přechod a zhmotní tabulku. To je důvod, proč vytáhl 15 003 řádků, i když je pro výstup pouze 101 řádků.

Spusťte další měření, které nemá vnořené iterátory. Stále iteruje tabulku Skutečné prodeje pomocí AVERAGEX , ale aktuální cena je mimo tuto funkci. Filtruje produkty, kde je aktuální cena vyšší nebo rovna 500, a poté vypočítá průměr.

Iterátory a kontextové přechody v dotazech DAX

Můžete vidět, že má pouze 2 skeny, 104 řádků a nemá CallBackDataID. Takže pokud použijete CALCULATE , můžete se zbavit vnořených iterátorů a CallBackDataID .




Závěr

Existuje mnoho příčin pomalého výkonu jazyka DAX. Jeden z nich je způsoben vnořenými iterátory, které způsobují zbytečné kontextové přechody. Tyto iterátory zhmotňují více řádků, než je potřeba, což způsobuje zpomalení vašich dotazů.

Nejlepším řešením je umístit jej do CALCULATE . To vytváří méně práce pro formulový motor a maximalizuje možnosti úložiště.


Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.