Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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:

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

Innholdsfortegnelse

Definisjon og formål med en databuffer

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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.

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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.

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

Siden formelmotoren ikke har direkte tilgang til dataene som er lagret i DirectQuery og VertiPaq, er den avhengig av lagringsmotoren for databufferne.

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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.

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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.

Databuffer: Hva det er og hvordan det hjelper å optimalisere spørringer

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.


DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

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.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

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å.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

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.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

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.