Granska prestanda för åtgärder, relationer och visuella objekt

Slutförd

Om din semantiska modell har flera tabeller, komplexa relationer, invecklade beräkningar, flera visuella objekt eller redundanta data finns det en potential för dåliga rapportprestanda. Dåliga prestanda i en rapport leder till en negativ användarupplevelse.

Skärmbild av faktorer som påverkar rapportens prestanda.

För att optimera prestanda måste du först identifiera var problemet kommer ifrån. Ta med andra ord reda på vilka element i rapporten och semantikmodellen som orsakar prestandaproblemen. Efteråt kan du vidta åtgärder för att lösa problemen och därmed förbättra prestanda.

Identifiera prestandaflaskhalsar för rapporter

För att uppnå optimala prestanda i dina rapporter måste du skapa en effektiv semantisk modell som har frågor och mått som körs snabbt. När du har en bättre grund kan du förbättra modellen ytterligare genom att analysera frågeplanerna och beroendena och sedan göra ändringar för att optimera prestanda ytterligare.

Du bör granska måtten och frågorna i din semantiska modell för att säkerställa att du använder det mest effektiva sättet att få de resultat du vill ha. Din startpunkt bör vara att identifiera flaskhalsar som finns i koden. När du identifierar den långsammaste frågan i semantikmodellen kan du fokusera på den största flaskhalsen först och upprätta en prioritetslista för att gå igenom de andra problemen.

Analysera prestanda

Du kan använda prestandaanalys i Power BI Desktop för att ta reda på hur vart och ett av dina rapportelement presterar när användarna interagerar med dem. Du kan till exempel bestämma hur lång tid det tar för ett visst visuellt objekt att uppdateras när det initieras av en användarinteraktion. Med Prestandaanalys kan du identifiera de element som bidrar till dina prestandaproblem, vilket kan vara användbart under felsökningen.

Innan du kör Prestandaanalys ska du börja med ett tomt cacheminne för visuella objekt och en rensad datamotorcache för att få det mest exakta resultatet i din analys (test).

  • Cacheminne för visuella objekt – När du läser in ett visuellt objekt kan du inte ta bort det här cacheminnet utan att stänga Power BI Desktop och öppna det igen. För att undvika cachelagring måste du starta analysen med ett tomt cacheminne för visuella objekt.

    För att se till att du har ett tomt cacheminne för visuella objekt lägger du till en tom sida i Power BI Desktop-filen (.pbix) och sedan, med den sidan markerad, sparar du och stänger filen. Öppna den Power BI Desktop-filen (.pbix) som du vill analysera på nytt. Den öppnas på den tomma sidan.

  • Datamotorcache – När en fråga körs cachelagras resultatet, så resultatet av analysen blir missvisande. Du måste rensa datacachen innan du kör det visuella objektet igen.

    Om du vill rensa datacachen kan du antingen starta om Power BI Desktop eller ansluta DAX Studio till den semantiska modellen och sedan anropa Clear Cache.

När du har rensat cacheminnena och öppnat Power BI Desktop-filen på den tomma sidan går du till fliken Visa och väljer alternativet Prestandaanalys.

Påbörja analysprocessen genom att välja Starta inspelning, markera sidan i rapporten som du vill analysera och interagera med elementen i rapporten som du vill mäta. Resultatet av interaktionerna visas i fönstret Prestandaanalys när du arbetar. När du är klar trycker du på knappen Stoppa.

Skärmbild av Prestandaanalys startskärm.

Mer detaljerad information finns i Använd Prestandaanalys för att undersöka prestanda för Report-element.

Granska resultat

Du kan granska prestandatestets resultat i fönstret Prestandaanalys. Om du vill granska uppgifterna i storleksordning, från den längsta till den kortaste, högerklickar du på ikonen Sortera bredvid kolumnrubriken Varaktighet (ms) och väljer sedan Total tid i fallande ordning.

Skärmbild som visar hur du sorterar resultat i Analyzer.

Logginformationen för varje visuellt objekt visar hur lång tid det tog (varaktighet) att slutföra följande kategorier av aktiviteter:

  • DAX-fråga – Den tid det tog för det visuella objektet att skicka frågan, tillsammans med den tid det tog för Analysis Services att returnera resultaten.

  • Visuell framställning – Den tid det tog för det visuella objektet att återges på skärmen, inklusive tiden som krävdes för att hämta webbavbildningar eller geokodning.

  • Övrigt – Den tid det tog för det visuella objektet att förbereda frågor, vänta på att andra visuella objekt skulle slutföras eller utföra andra bakgrundsbearbetningsuppgifter. Om den här kategorin visar lång varaktighet är det enda sättet att minska den här varaktigheten att optimera DAX-frågor för andra visuella objekt, eller minska antalet visuella objekt i rapporten.

Skärmbild av kategorier i prestandaanalysresultat.

Resultatet av analystestet hjälper dig att förstå beteendet för din semantiska modell och identifiera de element som du behöver optimera. Du kan jämföra varaktigheten för varje element i rapporten och identifiera de element som har lång varaktighet. Du bör fokusera på dessa element och undersöka varför det tar längre tid att läsa in dem på rapportsidan.

Om du vill analysera dina frågor mer detaljerat kan du använda DAX Studio, som är ett kostnadsfritt verktyg med öppen källkod som tillhandahålls av en annan tjänst.

Lösa problem och optimera prestanda

Resultatet av analysen identifierar områden för förbättringar och möjligheter till prestandaoptimering. Du kanske upptäcker att du behöver utföra förbättringar av visuella objekt, DAX-frågan eller andra element i din semantiska modell. Följande information ger dig vägledning om vad du ska titta efter och vilka ändringar du kan göra.

Visuell information

Om du identifierar visuella objekt som en flaskhals som leder till dåliga prestanda bör du hitta ett sätt att förbättra prestanda med minimal påverkan på användarupplevelsen.

Överväg antalet visuella objekt på rapportsidan. färre visuella objekt innebär bättre prestanda. Fråga dig själv om ett visuellt objekt verkligen behövs och om det tillför något värde för slutanvändaren. Om svaret är nej bör du ta bort det visuella objektet. I stället för att använda flera visuella objekt på sidan bör du överväga andra sätt att lägga till ytterligare information, till exempel genom att granska sidor och knappbeskrivningar på rapportsidan.

Undersök antalet fält i varje visuellt objekt. Ju fler visuella objekt du har i rapporten, desto större risk för prestandaproblem. Och ju fler visuella objekt, desto större risk att rapporten blir överfull och därmed otydligare. Den övre gränsen för visuella objekt är 100 fält (mått eller kolumner), så ett visuellt objekt med fler än 100 fält kommer att ta lång tid att läsa in. Fråga dig själv om du verkligen behöver alla dessa data i ett visuellt objekt. Du kanske upptäcker att du kan minska antalet fält som du använder just nu.

DAX-fråga

När du undersöker resultaten fönstret Prestandaanalys kan du se hur lång tid det tog för Power BI Desktop-motorn att utvärdera varje fråga (i millisekunder). En lämplig startpunkt är en DAX-fråga som tar längre tid än 120 millisekunder. I det här exemplet identifierar du en viss fråga som har en lång varaktighet.

Skärmbild av ett exempel på lång varaktighet i Prestandaanalys.

Prestandaanalys fokuserar på potentiella problem, men berättar inte vad du behöver göra för att förbättra dem. Du kanske vill utföra ytterligare undersökning kring varför det här måttet tar lång tid att bearbeta. Du kan använda DAX Studio för att undersöka dina frågor i detalj.

Välj till exempel Kopiera fråga om du vill kopiera beräkningsformeln till Urklipp och klistra in den i DAX Studio. Du kan sedan granska beräkningsstegen mer detaljerat. I det här exemplet försöker du räkna det totala antalet produkter med orderkvantiteter som är större än eller lika med fem.

Count Customers =
CALCULATE (
    DISTINCTCOUNT ( Order[ProductID] ),
    FILTER ( Order, Order[OrderQty] >= 5 )
)

När du har analyserat frågan kan du använda din egen kunskap och erfarenhet för att identifiera var prestandaproblemen finns. Du kan också prova att använda olika DAX-funktioner för att se om de förbättrar prestanda. I följande exempel ersattes FILTER-funktionen med funktionen KEEPFILTER. När testet kördes igen i Prestandaanalys var varaktigheten kortare som ett resultat av funktionen KEEPFILTER.

Count Customers =
CALCULATE (
    DISTINCTCOUNT ( Order[ProductID] ),
    KEEPFILTERS (Order[OrderQty] >= 5 )
)

I det här fallet kan du ersätta FILTER-funktionen med funktionen KEEPFILTER för att avsevärt minska varaktigheten för utvärderingstiden för den här frågan. När du gör den här ändringen för att kontrollera om varaktigheten har förbättrats eller inte ska du rensa datacachen och sedan köra processen Prestandaanalys igen.

Skärmbild av ett exempel på kort varaktighet i Prestandaanalys.

Semantisk modell

Om varaktigheten för åtgärderna och de visuella objekten visar låga värden (med andra ord har de en kort varaktighet) är de inte orsaken till prestandaproblemen. Om DAX-frågan i stället visar ett värde med hög varaktighet är det troligt att ett mått skrivs dåligt eller att ett problem har uppstått med semantikmodellen. Problemet kan orsakas av relationer, kolumner eller metadata i din modell, eller så kan det vara status för alternativet Automatisk datum/tid, enligt beskrivningen i följande avsnitt.

Relationer

Du bör granska relationerna mellan tabellerna för att säkerställa att du har upprättat rätt relationer. Kontrollera att egenskaperna för relationens kardinalitet är korrekt konfigurerade. En kolumn på en sida som innehåller unika värden kan till exempel vara felaktigt konfigurerad som en kolumn på många sidor. Du får lära dig mer om hur kardinalitet påverkar prestanda senare i den här modulen.

Kolumner

Vi rekommenderar att du inte importerar kolumner med data som du inte behöver. För att undvika att ta bort kolumner i Power Query-redigeraren bör du försöka hantera dem vid källan när du läser in data i Power BI Desktop. Men om det är omöjligt att ta bort överflödiga kolumner från källfrågan eller om data redan har importerats i sitt råtillstånd kan du alltid använda Power Query-redigeraren för att kontrollera varje kolumn. Fråga dig själv om du verkligen behöver varje kolumn och försök identifiera den fördel som var och en lägger till i din semantiska modell. Om du upptäcker att en kolumn inte lägger till något värde bör du ta bort den från din semantiska modell. Anta till exempel att du har en ID-kolumn med tusentals unika rader. Du vet att du inte använder den här specifika kolumnen i en relation, så den kommer inte att användas i en rapport. Därför bör du betrakta den här kolumnen som onödig och erkänna att den slösar utrymme i din semantiska modell.

När du tar bort en onödig kolumn minskar du storleken på den semantiska modellen, vilket i sin tur resulterar i en mindre filstorlek och snabbare uppdateringstid. Eftersom semantikmodellen endast innehåller relevanta data förbättras dessutom den övergripande rapportprestandan.

Mer information finns i Tekniker för dataminskning för importmodellering.

Metadata

Metadata är information om andra data. Power BI-metadata innehåller information om din semantiska modell, till exempel namn, datatyp och format för var och en av kolumnerna, schemat för databasen, rapportdesignen, när filen senast ändrades, datauppdateringshastigheten och mycket mer.

När du läser in data i Power BI Desktop är det bra att analysera motsvarande metadata så att du kan identifiera eventuella inkonsekvenser med din semantiska modell och normalisera data innan du börjar skapa rapporter. Om du kör analys av dina metadata förbättras semantikmodellens prestanda eftersom du, när du analyserar dina metadata, identifierar onödiga kolumner, fel i dina data, felaktiga datatyper, mängden data som läses in (stora semantiska modeller, inklusive transaktionella eller historiska data, tar längre tid att läsa in) och mycket mer.

Du kan använda Power Query-redigeraren i Power BI Desktop för att granska kolumner, rader och värden för rådata. Du kan sedan använda de tillgängliga verktygen, till exempel de som markerats i följande skärmbild, för att göra nödvändiga ändringar.

Skärmbild av alternativ för startfliken för frågeredigeraren.

Power Query-alternativen är:

  • Unnecessary columns (Onödiga kolumner) – Utvärderar behovet av varje kolumn. Om en eller flera kolumner inte ska användas i rapporten och därför inte behövs, bör du ta bort dem med alternativet Ta bort kolumner på fliken Start.

  • Onödiga rader – Kontrollerar de första raderna i semantikmodellen för att se om de är tomma eller om de innehåller data som du inte behöver i dina rapporter. I så fall tar den bort dessa rader med hjälp av alternativet Ta bort rader på fliken Start .

  • Datatyp – Utvärderar kolumndatatyperna för att se till att de är korrekta. Om du identifierar en datatyp som är felaktig ändrar du den genom att markera kolumnen, välja Datatyp på fliken Transformera och sedan välja rätt datatyp på listan.

  • Query names (Frågenamn) – undersöker frågans (tabell)namn i fönstret Frågor. Precis som du gjorde för kolumnrubrikernas namn bör du ändra ovanliga eller missvisande frågenamn till namn som är mer uppenbara eller som användaren är mer van vid. Du kan byta namn på en fråga genom att högerklicka på frågan, välja Byt namn, redigera namnet efter behov och sedan trycka på Retur.

  • Kolumninformation – Power Query-redigeraren har följande tre alternativ för förhandsgranskning som du kan använda för att analysera de metadata som är associerade med dina kolumner. Du hittar alternativen på fliken Visa, som du ser i följande skärmbild.

    • Kolumnkvalitet – Bestämmer vilken procentandel av objekten i kolumnen som är giltiga, innehåller fel eller är tomma. Om den giltiga procentandelen inte är 100 bör du undersöka orsaken, korrigera felen och fylla i tomma värden.

    • Kolumnfördelning – Visar frekvens och fördelning av värdena i varje kolumn. Du kommer att undersöka detta senare i den här modulen.

    • Kolumnprofil – Visar stapelstatistikdiagram och ett kolumndistributionsdiagram.

Skärmbild av alternativen för kolumnprofilen.

Anteckning

Om du granskar en stor semantisk modell med fler än 1 000 rader och vill analysera hela den semantiska modellen måste du ändra standardalternativet längst ned i fönstret. Välj Kolumnprofilering baserat på de översta 1 000 raderna>Kolumnprofilering baserat på hela datauppsättningen.

Skärmbild av kolumnprofilraderna.

Andra metadata som du bör överväga är informationen om semantikmodellen som helhet, till exempel filstorlek och datauppdateringshastigheter. Du kan hitta dessa metadata i den associerade Power BI Desktop-filen (.pbix). De data som du läser in i Power BI Desktop komprimeras och lagras på disken av VertiPaq-lagringsmotorn. Storleken på din semantiska modell har en direkt inverkan på dess prestanda. En semantisk modell i mindre storlek använder mindre resurser (minne) och uppnår snabbare datauppdatering, beräkningar och återgivning av visuella objekt i rapporter.

Funktion för automatisk datum/tid

En annan sak att tänka på när du optimerar prestanda är alternativet Automatisk datum/tid i Power BI Desktop. Som standard är den här funktionen aktiverad globalt, vilket innebär att Power BI Desktop automatiskt skapar en dold beräknad tabell för varje datumkolumn, förutsatt att vissa villkor är uppfyllda. De nya dolda tabellerna är utöver de tabeller som du redan har i din semantiska modell.

Med alternativet Automatisk datum/tid kan du arbeta med tidsinformation när du filtrerar, grupperar och går igenom tidsperioder för kalender. Vi rekommenderar att du har alternativet Automatisk datum/tid aktiverat endast när du arbetar med kalendertidsperioder och när du har förenklade modellkrav i förhållande till tiden.

Om datakällan redan definierar en datumdimensionstabell ska den tabellen användas för att konsekvent definiera tid i din organisation, och du bör inaktivera det globala alternativet Automatisk datum/tid. Om du inaktiverar det här alternativet kan du minska storleken på din semantiska modell och minska uppdateringstiden.

Du kan aktivera/inaktivera det globala alternativet Automatisk datum/tid så att det gäller alla dina Power BI Desktop-filer, eller så kan du aktivera/inaktivera alternativet för den aktuella filen så att det endast gäller för en enskild fil.

Om du vill aktivera/inaktivera det här alternativet Automatiskt datum/tid går du till Filalternativ>och inställningar>Alternativ och väljer sedan antingen sidan Global eller Aktuell fil . På någon av sidorna väljer du Datainläsning, och i avsnittet Tidsinformation markerar eller avmarkerar du kryssrutan efter behov.

Skärmbild som visar hur du konfigurerar automatisk datumtid.

I Tillämpa automatisk datum/tid i Power BI Desktop finns en översikt och en allmän introduktion till funktionen Automatisk datum/tid.