I denne øvelse lærer du at bruge UNION-funktionen. Denne tutorial vil sammenligne ydelsen af UNION-funktionen i forhold til og andre teknikker til at kombinere tabeller.
Detfunktion kombinerer to tabeller til en enkelt tabel ved at kombinere deres rækker og fjerne eventuelle duplikerede rækker.
Eksemplet i denne øvelse er en salgstabel, der er opdelt i tre tabeller for hvert år (2007, 2008, 2009).
Indholdsfortegnelse
UNION-funktionen i DAX
Åbn og start Server Timings og Query Plan.

DAX-koden nedenfor bruges som eksempel:

Når du har kørt koden, skal du gå til fanen Server Timings . Du kan se, at koden i alt tager 5,4 sekunder at udføre. Det meste af henrettelsestiden blev brugt i . Hver af disse tre forespørgsler indeholder den samme operation, men årene er forskellige.

Efter at disse tre forespørgsler er returneret af Storage Engine, udfører den en UNION, som kan ses i den logiske forespørgselsplan. Forespørgselsplanen udfører også en beregning for det samlede salg.

I den fysiske forespørgselsplan kan du se de tre datacaches, der indeholder de udførte operationer for hvert år i tabellen Salg.

Sammenligning af DAX-ydelse
For at opbygge sammenligningen, lad os oprette et mål for det samlede salg ved hjælp af den originale salgstabel.

Hvis du kører denne kode og går til fanen Server Timings , kan du se, at dette er væsentligt mere effektivt end UNION-funktionen.
UNION-funktionen bruger 97,9 kilobytes, mens den nye måling kun bruger 1KB.

Når du bruger UNION, returnerer DAX Engine en enorm mængde datacache tilbage til Formula Engine. Dette lægger et stort pres på RAM'en.
Så hvis du har at gøre med en datamodel, der indeholder mere end en million rækker, anbefales det ikke at bruge UNION-funktionen
UNION DAX funktionsalternativer
I stedet for at bruge UNION kan du bruge tre SUMX- funktioner til dette eksempel. Det vil sige én SUMX-funktion for hvert år.

Når du kører denne kode og går til fanen Server Timings, kan du se, at eksekveringstiden er væsentligt lavere. Den gik fra 5.400 ms til 33 ms, mens den stadig udførte tre forskellige forespørgsler.

En anden måde er at tilføje datamodeltabellen i Power Query eller i selve datakilden.
Men den bedste mulighed er at oprette en, der vil udføre foreningen af disse tre tabeller. Men denne mulighed har sine fordele og ulemper.
Ved at bruge en beregnet tabel kan du spare den samlede behandlingstid i modsætning til at udføre en tilføjelse i Power Query. Dette vil dog få databasestørrelsen i VertiPaq til at øges.
Når du bruger en beregnet tabel, opretter du en ny tabel, der kombinerer de tre tabeller. Men disse tre opdelte tabeller vil fortsat forblive i databasen.

I dette eksempel bruger de tre tabeller i alt 25 MB. Hvis du opretter en beregnet tabel, vil den forbruge yderligere 25 MB i din RAM.
For følsomme sager som disse skal du træffe en kvalificeret beslutning om, hvad der ville være den bedste fremgangsmåde at tage.
Konklusion
UNION-funktionen i DAX kombinerer to tabeller til én, hvilket gør det nemmere at analysere data. Det fungerer ved at tage to tabeller som input og returnere en ny tabel, der indeholder alle rækkerne fra begge inputtabeller. Denne funktion har dog sine egne begrænsninger.
UNION-funktionen kan være langsommere end andre metoder til at kombinere data, især hvis inputtabellerne er store. Det kan også forbruge mere plads i opbevaringen i modsætning til andre alternativer.
Når en situation kræver, at tabeller skal kombineres, er det vigtigt først at afveje fordele og ulemper, før du beslutter dig for at bruge UNION-funktionen. Dine alternativer inkluderer SUMX-funktionen, en datamodeltabel eller en beregnet tabel.
Alt det bedste,