Datacaches i en DAX-beregning

I denne øvelse lærer du om, hvad datacaches gør i en DAX-beregning. Du vil forstå, hvordan de arbejder med formlen og lagermotorerne for at give svar på dine spørgsmål.

Indholdsfortegnelse

Hvad er datacaches?

Lagermotoren interagerer med formelmotoren i form af en datacache.

Hvis du husker fra de tidligere blogindlæg om DAX-forespørgselsstrukturen, ved du, at formelmotoren anmoder om data fra lagermotoren. Sidstnævnte går derefter til databasen, henter forskellige typer data og returnerer dem derefter tilbage til formelmotoren i form af en datacache.

Lagermotoren kan lave simpel matematik og aggregering, hvilket gør det hurtigere. Det tilbyder også parallelitet, som kan fylde flere datacacher på én gang. En forespørgsel på lagermotor kan tage tid at generere et svar. Men hvis du tilføjer alle forskellige storage-motorforespørgsler, vil resultaterne ikke være de samme, fordi den fylder mere end én datacache.

Formelmotoren arbejder på den anden side på komplekse forespørgsler. Da det er en enkelt-trådet motor, kan den kun bruge én endelig konsolideret datacache. Det begynder at arbejde på datacachen, når alle anmodninger er udfyldt af lagermotoren.

Hvis formelmotoranmodningen er nøjagtig den samme som den tidligere anmodning, vil cachen, der tidligere blev returneret, blive brugt igen. Lagermotoren er smart nok til at returnere den samme datacache, hvis den modtager den samme anmodning. Dette gør DAX'ens ydeevne hurtigere, da dataene allerede er cachelagret.

Når du kører et mål, er det vigtigt at køre det mod en kold cache; undgå altid at køre dine forespørgsler i den varme cache. En varm cache betyder, at lagringsmotorens datacache allerede er dannet og klar til at blive returneret.

Hvad er nøglefunktionerne?

Datacaches er tabeller, der er materialiseret i hukommelsen, som tager tid og spiser RAM. Husk altid, at materialiseringen skal være så lav som muligt.

En anden nøglefunktion er, at disse caches er ukomprimerede . Når den først kommer ud af lagermotoren og sendes til formelmotoren, bliver datacachen en ukomprimeret fuld tabel i hukommelsen. Denne udførelse er meget langsommere end en peer-lagringsmotoranmodning, som alt er i hukommelsen og komprimeret.

Der er ikke noget problem med at bruge formelmotoren; du skal bare have lagermotoren til at udføre arbejdet så meget som muligt.

Datacaches er også midlertidige. De eksisterer i et stykke tid, og så er de væk. Selvom de er materialiseret i hukommelsen, er de ikke vedvarende, så de bliver ryddet ud.

Hvor finder man datacaches?

Du kan finde disse oplysninger i kolonnen Physical Query Plans Records og i DAX Studios Server Timings i Rows-kolonnen . Det vil du vise, hvor mange rækker der produceres af lagermotoren og sendes til formelmotoren.

Hvis du kører visse tests i servertimingerne, vil du bemærke, at antallet af rækker kan falde en smule. Dette er kun en retningslinje for, hvor mange rækker du trækker op.

Det vigtigste at huske på med datacaches er, at antallet af materialiserede rækker skal være lig med antallet af rækker, der er nødvendige for output så tæt som muligt. Hvis der er stor forskel på antallet af rækker, betyder det, at ordreoperationen er slået fra.

Hvis mængden af ​​materialiserede rækker er lig med mængden af ​​rækker, der er nødvendige for outputtet, kaldes det Late Materialization . Men hvis antallet af materialiserede rækker er større end antallet af nødvendige rækker, kaldes det tidlig materialisering . Da disse er ukomprimerede data, bør du ikke lade begge motorer materialisere dem, fordi det vil bremse DAX's ydeevne.

Dette er et eksempel på en tidlig materialisering:

Datacaches i en DAX-beregning

I den fysiske forespørgselsplan kan du se 25 millioner rækker blive trukket op i kolonnen Records. Eksempelforespørgslen behøver dog ikke 25 millioner rækker output. Det betyder, at forespørgslen trak for mange rækker end nødvendigt.

Hvis du ser på servertimingerne, vil du se det samme antal rækker, der trækkes i kolonnen Rækker.

Datacaches i en DAX-beregning

I SE CPU- visualiseringerne vil du se et tal, hvis der er paralleller i dine forespørgsler. Da dette eksempel ikke har nogen, viste det 0.

Datacaches i en DAX-beregning




Konklusion

En langsom ydende DAX kan betyde, at din forespørgsel trækker unødvendige caches for at dine motorer kan fungere. Datacaches er ansvarlige for hastigheden og nøjagtigheden af ​​din DAX, fordi motorerne arbejder på dem for at generere svar på forskellige anmodninger. For en hurtigere DAX-ydeevne kan du løse dette problem ved at opbygge din datamodel og DAX-mål korrekt.


Hvad er Power Query & M Language: En detaljeret oversigt

Hvad er Power Query & M Language: En detaljeret oversigt

Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Lær, hvordan du opretter en sideinddelt rapport, tilføjer tekster og billeder og derefter eksporterer din rapport til forskellige dokumentformater.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lær, hvordan du bruger SharePoint-automatiseringsfunktionen til at skabe arbejdsgange og hjælpe dig med at mikrostyre SharePoint-brugere, -biblioteker og -lister.

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!

Løbende totaler i LuckyTemplates ved hjælp af DAX

Løbende totaler i LuckyTemplates ved hjælp af DAX

Lær, hvordan du beregner løbende totaler i LuckyTemplates ved hjælp af DAX. Løbende totaler giver dig mulighed for ikke at blive fanget af et individuelt resultat.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af ​​variabler for, hvordan dine mål beregnes.

LuckyTemplates hældningsdiagram: en oversigt

LuckyTemplates hældningsdiagram: en oversigt

Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.

LuckyTemplates farvetemaer til ensartede visualiseringer

LuckyTemplates farvetemaer til ensartede visualiseringer

Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.