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.


Variabler og uttrykk i Power Query Editor

Variabler og uttrykk i Power Query Editor

Denne opplæringen vil diskutere om variabler og uttrykk i Power Query Editor. Du lærer hvordan du skriver og bygger dem riktig.

Hvordan lage et Lucky Templates-varmekart

Hvordan lage et Lucky Templates-varmekart

Et LuckyTemplates-varmekart er en type visualisering som brukes til å vise datatetthet på et kart. I denne opplæringen vil jeg diskutere hvordan vi kan lage en – ikke gå glipp av noe!

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Jeg skal lære deg et veldig interessant eksempel rundt Pareto-prinsippet og hvordan du lager et Pareto-diagram ved hjelp av viktige DAX-formler.

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Lær hvordan et tilpasset stolpediagram på markedsplassen kan brukes til datasammenligning og hvordan du kan lage dem ved å bruke eksempler i LuckyTemplates.

Kraftautomatisering av statiske resultater: En oversikt

Kraftautomatisering av statiske resultater: En oversikt

Lær hvordan Power Automate Static Results-funksjonen fungerer og hvorfor det er bra å bli lagt til de beste praksisene når du lager flytdiagrammer.

LuckyTemplates Python-opplæring: Hvordan oversette tekster

LuckyTemplates Python-opplæring: Hvordan oversette tekster

eDNA demonstrerer hvordan du utfører språk- eller tekstoversettelse ved hjelp av Python og overfører det til LuckyTemplates. LuckyTemplates Python-opplæring.

Lag et Gantt-diagram i LuckyTemplates Report Builder

Lag et Gantt-diagram i LuckyTemplates Report Builder

I denne opplæringen lærer du hvordan du bruker Gauge Bullet Graph til å lage et Gantt-diagram i LuckyTemplates Report Builder.

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

I denne opplæringen lærer du hvordan du lager et tredimensjonalt (3D) spredningsplott ved å bruke Python i LuckyTemplates.

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet