Materialiseringsideer for datacacher i DAX Studio

Denne opplæringen vil diskutere materialisering for databuffere i DAX Studio. Dette innlegget vil vise hvordan det påvirker beregningen din mens du genererer resultater med søket ditt. Du vil lære hvilken materialisering som er bedre for å maksimere DAXs ytelse.

Det er to ideer om materialisering: tidlig materialisering og sen materialisering .

Innholdsfortegnelse

Tidlig materialisering

Tidlig materialisering er når antall materialiserte rader er større enn antall rader som trengs for utdata.

Hvis produksjonen din er en tabell etter kalenderår og du har fem år med data, er det unødvendig å ta med mange materialiserte rader. Den beste praksisen er å ha antall materialiserte rader lik antallet rader som trengs. Det er imidlertid ikke alltid tilfelle fordi det avhenger av kompleksiteten til dinog dataoppsett.

Husk alltid at data består av kolonner. Så når formelmotoren må jobbe på en tabell, bringes kolonner sammen igjen i et tabellformat, som er materialiseringen. I en tidlig materialiseringside sender lagringsmotoren databuffer til formelmotoren. Formelmotoren jobber deretter på cachen og utfører komplekse prosesser.

Tidlig materialisering kan være forårsaket av å ha komplekse sammenføyninger eller et mange-til-mange forhold i datamodellene dine. Det kan også være forårsaket av komplekse filtre eller iteratorer.

Det er ikke feil å ha komplekse tiltak; du må bare sette dem opp riktig for å utnytte lagringsmotoren så mye som mulig.

Sen materialisering

Sen materialisering er når du har antall materialiserte rader lik eller nær antall rader som trengs for utskriften.

Lagringsmotoren gjør nesten alt arbeidet og etterlater ingenting til formelmotoren. Dette gjør hele beregningen raskere.

Dette er eksempler på spørsmål om tidlig og sen materialisering:

Materialiseringsideer for datacacher i DAX Studio

Før du kjører disse spørringene, sørg for å tømme hurtigbufferen. Dette vil få spørringene dine til å kjøre mot den kalde cachen. Hvis du kjører DAX uten å tømme hurtigbufferen, får du dette resultatet:

Materialiseringsideer for datacacher i DAX Studio

Den totale utførelsestiden er bare 1861 millisekunder fordi den allerede brukte en cache. Så tøm alltid bufferen før du kjører spørringene dine.

Hvis du kjører Early Materialization-spørringen, kan du se at den totale tiden det tok er 9485 millisekunder. Den genererte én databuffer og en utgang på én rad, men returnerte 25 millioner rader.

Materialiseringsideer for datacacher i DAX Studio

Du trenger ikke materialisere 25 millioner rader for å få et resultat på én rad fordi det tar tid og bremser DAXs ytelse.

Hvis du kjører Late Materialization-spørringen, kan du se at hele beregningen bare tok 1340 millisekunder. Den genererte også 2 databuffere, hvor hver returnerte 5003 rader.

Materialiseringsideer for datacacher i DAX Studio

Hvis du ser på den fysiske spørreplanen, kan du se 5000 rader. De har ikke like mange rader. Resultatet til servertimingene vil noen ganger ha et lite avvik til det nøyaktige antallet rader i spørringsplanen.

Materialiseringsideer for datacacher i DAX Studio

Så fra å jobbe med én databuffer med 25 millioner rader, har du nå to databuffer med 5003 rader. Det er grunnen til at arbeid med senere materialisering gir raskere resultater enn tidlig materialisering.

Inne i hver materialiseringsforespørsel

Ved bare å se på spørringen, kan du allerede se at den senere materialiseringen er raskere. Tidlig materialisering-spørringen teller radene i en oppsummert tabell.

Materialiseringsideer for datacacher i DAX Studio

Tabellen som er oppsummert og materialisert er større enn bare å gjøre enav på bordet, som er det Late Materialization-spørringen gjør.

Hvis søket er tregt, start med å se på hvor mange rader som trekkes i spørringen og hvor mange som trengs for utdata. Du kan også gå til den logiske spørreplanen og følge arbeidsflyten som skjer i beregningen.




Konklusjon

Materialisering skjer når søkene dine trekker kolonner eller rader fra datamodellen din. Denne prosessen skjer naturlig når motoren din henter data fra datamodellen din for å gi resultater for søket ditt.

Det kan imidlertid oppstå problemer hvis din DAX trekker for mange rader enn det som er nødvendig for resultatet. Dette problemet kan løses ved å forenkle din DAX for å utføre spesifikke prosesser.


Pipe In R: Koblingsfunksjoner med Dplyr

Pipe In R: Koblingsfunksjoner med Dplyr

I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Lær hvordan du demonterer en PBIX-fil for å trekke ut LuckyTemplates-temaer og bilder fra bakgrunnen og bruke den til å lage rapporten din!

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

Python i LuckyTemplates: Hvordan installere og sette opp

Python i LuckyTemplates: Hvordan installere og sette opp

Lær hvordan du installerer programmeringsspråket Python i LuckyTemplates og hvordan du bruker verktøyene til å skrive koder og vise visuelle elementer.

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Lær hvordan du beregner dynamiske fortjenestemarginer ved siden av LuckyTemplates og hvordan du kan få mer innsikt ved å grave dypere inn i resultatene.

Sortering av datotabellkolonner i LuckyTemplates

Sortering av datotabellkolonner i LuckyTemplates

Lær hvordan du sorterer feltene fra kolonner med utvidet datotabell på riktig måte. Dette er en god strategi å gjøre for vanskelige felt.

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

I denne artikkelen går jeg gjennom hvordan du kan finne de beste produktene dine per region ved å bruke DAX-beregninger i LuckyTemplates, inkludert TOPN- og CALCUATE-funksjonene.

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Lær hvordan du bruker en søppeldimensjon for flagg med lav kardinalitet som du ønsker å inkludere i datamodellen din på en effektiv måte.