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.
Bådeoger kraftige verktøy for å manipulere og analysere data i DAX-søk, men de har noen viktige forskjeller som er viktige å forstå.
I denne bloggen skal vi gå over CALCUATETABLE -funksjonen og dens , og forstå hvordan den skiller seg fra FILTER -funksjonen. Mot slutten vil du ha en bedre forståelse av hvordan du velger riktig funksjon for dine dataanalysebehov.
For å demonstrere bruker vi DAX-koden nedenfor.
Når du kjører denne koden, får du en tabell som viser merke og farge.
I kategorien Spørringsplaner får du en kode som tilsvarer CrossApply- operatøren i .
Samtidig kan du se at koden kun henter produktfarge og merke i fanen Server Timings .
Innholdsfortegnelse
DAX Studio Server Timings Resultat for KALKULERTABELL
Som et eksempel, la oss filtrere produktfargen til kun å vise rød og/eller svart.
Du kan gjøre det ved å bruke FILTER-funksjonen. Når du kjører det, vil Server Timings vise at FILTER-argumentet ikke brukes på .
Men hvis du bruker CALCUATETABLE-funksjonen, vil spørringen i fanen Server Timings vise at resultatene er filtrert etter produktfarge.
Kalkylerbar Spørreplan i DAX Studio
La oss se på spørreplanen for hver funksjon.
CALCULATETABLE er på den første linjen i den logiske spørreplanen fordi det er en funksjon på toppnivå i koden og derfor ikke er avhengig av noen krav.
Når du leser spørringsplanen til en CALCULATETABLE-funksjon, starter du ikke med det første argumentet. Du må først forstå filterkonteksten som brukes. Så la oss gå til linje 5.
Du kan se at operatøren krever produktfargekolonnen på grunn av det anvendte filteret. Den skanner deretter denne kolonnen og bruker Not IsEmpty- filterkombinasjonen for å sjekke produktfargen mot hver rad.
Etter at filterkonteksten er utarbeidet, utføres argumentet.
I ettertid, hvis du bruker FILTER-funksjonen, vil du se en annen spørringsplan, så CROSSJOIN-argumentet utføres før filterkonteksten identifiseres.
Ulempen med denne tilnærmingen er at den ikke skyver filtertilstanden til lagringsmotoren. Du vil ikke kunne bruke WHERE- klausulen inne i xmSQL som vil legge en tung byrde på Formula Engine.
Og når du jobber med flere tabeller, vil filterkombinasjonen av CROSSJOIN-funksjonen være enorm. Dette reduserer ytelsen til DAX-koden. Derfor anbefales det i de fleste tilfeller å bruke CALCUATETABLE-funksjonen.
Så i stedet for å utføre alle beregningene i Formula Engine, kan du injisere filtertilstanden i WHERE-klassen til XMSQL-koden.
Kontekstovergang for lignende DAX-funksjoner
Servertidspunkter
Dette konseptet kan også brukes for CALCUATE-funksjonen. La oss bruke DAX-koden nedenfor som et eksempel.
Et mål har automatisk en CALCUATE-funksjon rundt seg.
Når du kjører denne koden, får du en tabell som viser det totale salgsbeløpet for hver farge.
I fanen Server Timings kan du se at koden utfører to spørringer. Den første spørringen beregner summen av salgsbeløpet fra salgstabellen i forhold til produkttabellen.
På den annen side henter den andre spørringen produktfargen igjen fra produkttabellen. Den tilsvarer funksjonen i DAX-koden.
Formula Engine plasserer databuffrene til de to spørringene side om side. Den starter med å hente verdiene fra den andre databufferen og utfører deretter et oppslag i den første databufferen.
Spørreplan
I kategorien Spørringsplan skanner den logiske spørreplanen produktfargen på grunn av argumentet.
Deretter summerer VertiPaq det totale salgsbeløpet avhengig av produktfargen. Den utfører kontekstovergangen som konverterer produktfargeverdien til en tilsvarende filterkontekst.
Filteret opprettet av kontekstovergangen blir oversatt til en DependOnCols- egenskap i spørringsplanen. Etter at VertiPaq skanner kolonnene som kreves for å beregne totalt salg, multipliserer den salgsmengden med nettoprisen.
Totalt salg returneres deretter som et resultat i form av en valutadatatype. Og til slutt returnerer ADDCOLUMNS en tabell med to kolonner som inneholder farge og totalt salgsbeløp.
Konklusjon
Spørringsplanen kan ha en betydelig innvirkning på ytelsen til en spørring, ettersom ulike spørringsplaner kan ha ulike effektivitetsnivåer.
Når du bruker funksjonene CALCULATETABLE og FILTER i en DAX-spørring, kan spørringsplanen variere avhengig av det spesifikke scenariet og en rekke faktorer, for eksempel det spesifikke formeluttrykket som brukes og søkemotorens funksjoner.
Generelt er det en god idé å teste og sammenligne ytelsen til forskjellige spørringsplaner for å finne den mest effektive tilnærmingen for et gitt scenario.
Beste ønsker,
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.