DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler
Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.
I denne opplæringen lærer du hva en databuffer er og hvorfor den er viktig. En databuffer lagrer databiter som kan bli verdifulle for fremtidig bruk.
Hvis du trenger den samme informasjonen i et fremtidig tiltak eller handling, vil databufferen gi den informasjonen du trenger. Det eliminerer å få systemet til å hente de samme datasettene igjen.
I denne opplæringen vil du gå gjennom åtte viktige ting å huske når du arbeider med databuffere i LuckyTemplates:
Innholdsfortegnelse
Definisjon og formål med en databuffer
En databuffer er en midlertidig tabell opprettet i minnet av . Denne midlertidige tabellen sendes til formelmotoren som deretter itererer over denne informasjonen og utfører forskjellige operasjoner etter spørringen.
All kommunikasjon mellom og lagringsmotoren skjer alltid i form av en databuffer. Formelmotoren forbereder spørringsplanene og sender deretter instruksjonene til lagringsmotoren. Lagringsmotoren sender den deretter tilbake til formelmotoren som returnerer resultatet tilbake til brukeren.
Siden formelmotoren ikke har direkte tilgang til dataene som er lagret i DirectQuery og VertiPaq, er den avhengig av lagringsmotoren for databufferne.
Databufferen sendt av lagringsmotoren er i et ukomprimert format. Dette betyr at størrelsen på dataene som er lagret i Vertipaq-verktøyet kan reduseres.
Men når det er på tide å returnere databufferen tilbake til formelmotoren, kan den ikke komprimeres fordi formelmotoren ikke fungerer med komprimerte datasett.
Hva er en databuffers innvirkning på RAM
Hvis lagringsmotoren sender enorme biter av datacacher, vil dette ta mye plass på programvarens RAM. Det kommer også til å ta en betydelig mengde tid for formelmotoren å utføre iterasjoner og produsere et resultat.
Så når du skriver DAX-koden din, må du forstå at den skal skrives på en måte som minimerer radene i databufferen.
Det beste scenarioet ville være å matche antall rader som vises i visualiseringen med antall rader som returneres i databufferen.
Mesteparten av tiden er det vanskelig å returnere samme antall rader. Hvis dette skjer, må du gjennomgå DAX-koden din og bryte den ned på en måte som optimaliserer databufferen som produseres av lagringsmotoren.
Hvordan en databuffer optimaliserer spørringer
Uoptimaliserte funksjoner
Noen av funksjonene i DAX-språket er ikke optimalisert for lagringsmotoren. For bedre å forstå dette, la oss se på et eksempel.
For eksempel, i koden din, i stedet for å bruke SUMMARIZE, kan du bruke funksjonen. SUMMARIZE- og GROUPBY-funksjonene utfører samme operasjon. Det er imidlertid betydelige forskjeller avhengig av scenariet.
GROUPBY-funksjonen er ikke optimalisert for Storage Engine. Hvis du bruker GROUPBY-funksjonen på en faktatabell med 12 millioner rader, vil den produsere en databuffer med samme antall rader. Dette kan være så stort som 600mb opp til 1gb.
Denne størrelsen kan legge mye press på RAM-en din. Så i stedet for å bruke GROUPBY, bruk . SUMMARIZE-funksjonen resulterer i en mindre databufferstørrelse. Du kan pare den med GROUPBY som en funksjon på toppnivå.
Reduserte gjentakelser
Når du skriver DAX-målene eller -spørringene dine, må du sørge for at koden som produseres bak kulissene er egnet for lagringsmotoren.
Du må skrive DAX-koden din på en måte som produserer databuffer som også kan brukes i påfølgende spørringer. Fordelen med å gjøre dette er at i stedet for å utføre en separat skanning med , vil lagringsmotoren sjekke om en lignende spørring allerede er mottatt.
Hvis dette er sant, betyr det at databufferen er tilgjengelig i minnet. Så i stedet for å skanne spørringen på nytt, vil VertiPaq ganske enkelt returnere den fra hurtigbufferminnet til formelmotoren.
Hvis du ser en spørring i lagringsmotoren, betyr det at disse spørringene ikke kan bufres. Hvis i tilfelle en lignende spørring sendes til lagringsmotoren, vil den utføre en repetisjon.
Dermed må VertiPaq kalle opp formelmotoren for å løse spørringen. Dette øker den totale utførelsestiden fordi cache-minnet ikke kan brukes i dette tilfellet.
Konklusjon
Databufferen er din beste venn på DAX-språket. Husk å skrive DAX-koden din på en måte som maksimerer lagringsplassen og reduserer VertiPaq-verktøyets antall iterasjoner. Du kan gjenbruke databufferen som allerede er produsert av Storage Engine for å redusere utføringstiden for spørringen.
Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.
Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.
Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.
I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.
Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.
Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.
I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.
I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.
I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.
I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.