DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Den här handledningen kommer att diskutera de två DAX-frågeplanerna i LuckyTemplates.

Frågeplaner påverkar DAX:s prestanda när det gäller att generera värdefull data. De hjälper också till att optimera som gör din rapport mer övertygande.

Det här är de två frågeplanerna som genereras av formelmotorn:

  • Logisk frågeplan
  • Fysisk frågeplan

Varje DAX-fråga utlöser dessa två händelser.

Innehållsförteckning

Logisk frågeplan i LuckyTemplates

Detta är DAX-frågeflödet. För den här delen fokuserar du på det tredje steget som är Förenkla logiska frågeplansträd .

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Den här frågan liknar din DAX-fråga. När du kör en DAX-fråga matchar den mestadels vad den logiska frågeplanen gör.

För att illustrera, här är ett exempel på en fråga.

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Om du kör detta får du ett resultat på 29 138.

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Om du kör frågan i DAX Studio och aktiverar fliken Query Plan Events, kommer du över Query Plans. Bland de två typerna dyker den logiska frågeplanen upp först.

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Varje indragen rad är en deluppgift byggd på varandra. Den första raden är det slutliga resultatet av din DAX. De andra raderna summerar och skannar kolumnen FactSales Kvantitet.

Det första ordet före kolon kallas för.

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Orden efter kolon kallas operatortyper .

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Det finns två typer av operatörstyper:

  • RelLogOp
  • ScaLogOp

RelLogOp är en tabellutgång. DAX använder VertiPaq för att skanna en kolumn för att skapa en tabell. Å andra sidan är ScaLogOp en skalär utgång; detta betyder att det är ett aggregerat tal. Om du tittar på den andra och sista raden i frågeplanen ser du att den summerar och får kvantiteten av FactSales' kvantitet.

Logiska frågeplaner skapar en enradstabell som heter Total kvantitet som har summan av kvantitet från tabellen FactSales.

Frågeplanen är lättare att avkoda eftersom den använder en enkel DAX-fråga. Ju mer komplex din DAX är, desto svårare är den att avkoda.

En bra sak att sträva efter är att se många "_VertiPaq"-operatörer som möjligt. Det betyder att den gör allt arbete själv för att hjälpa till att optimera dina DAX-koder.

Fysisk frågeplan i LuckyTemplates

Den fysiska frågeplanen kommer på andra plats bland de två typerna. Detta är det fjärde steget i DAX-frågeflödet. Den har samma trädstruktur som den logiska frågeplanen.

När den logiska frågeplanen har byggts skickas den till den fysiska frågeplanen för att exekveras. Om du kör samma exempelfråga får du samma svar.

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Specifikt är det fjärde steget i DAX-frågeflödet att bygga det fysiska frågeplansträdet .

DAX-fråga i LuckyTemplates – logiska och fysiska frågeplaner

Den kan se ut som den logiska frågeplanen, men den är annorlunda. Normalt är den fysiska frågeplanen svår att matcha med DAX-frågan i men eftersom det är en enkel exempelfråga kan du följa processen.

Det här är de tre operatörstyperna i den fysiska frågeplanen:

  • LookupPhyOp
  • InterPhyOp
  • SpoolPhyOp

LookupPhyOp ger skalära värden i en given radkontext. InterPhyOp itererar data genom en tabell rad för rad . SpoolPhyOp tar emot resultat från en VertiPaq-fråga, materialiserar den och lagrar den i minnet.

På den fjärde raden i frågeplanen kan du se en ProjectionSpool-operatör vilket innebär att en fråga skickas till lagringsmotorn. Den itererar resultaten av en fråga med antalet poster.

Mängden poster som visas i frågeplanen bör vara den minsta mängd poster som krävs för att slutföra svaret. Resultatet av denna enkla fråga har bara 1 rad så det returnerade 1 post i frågeplanen.

Kolumnen Records , som motsvarar ProjectionSpools SpoolPhyOp, visar hur mycket data som skickas från lagringsmotorn till formelmotorn. Så ju fler poster du har, desto långsammare blir din fråga.

Om DAX-prestandan är långsam är kolumnen Records ett bra ställe att börja leta.




Slutsats

När du kör en DAX-fråga går den igenom en rad steg innan den ger dig ett svar. Två av dessa steg är de logiska och fysiska frågeplanerna. De ansvarar för steg-för-steg-processen och exekvering av de formler som används i beräkningen.

Om du vill lära dig och förstå mer om dessa frågeplaner, gå igenom den här handledningen och försök sedan använda för att se dem i första hand.


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.