Åtgärda prestandaproblem

Slutförd

Ibland behöver organisationer åtgärda prestandaproblem när de kör rapporter. I Power BI finns verktyget Prestandaanalys som hjälper dig åtgärda problem och göra processen effektivare.

Överväg scenariot där du skapar rapporter för säljteamet i din organisation. Du har importerat dina data, som finns i flera tabeller i säljteamets SQL-databas, genom att skapa en dataanslutning till databasen via DirectQuery. När du skapar preliminära visuella objekt och filter märker du att vissa tabeller frågas snabbare än andra, och att vissa filter tar längre tid att bearbeta jämfört med andra.

Optimera prestanda i Power Query

Prestandan i Power Query beror på prestandan på datakällans nivå. Mängden datakällor som Power Query erbjuder är bred och prestandajusteringsteknikerna för varje källa är lika breda. Om du till exempel extraherar data från Microsoft SQL Server bör du följa produktens riktlinjer för prestandajustering. Bra SQL Server prestandajusteringstekniker inkluderar skapande av index, maskinvaruuppgraderingar, justering av körningsplan och datakomprimering. Dessa ämnen ligger utanför ramen här och visas bara som ett exempel för hur du kan lära känna din datakälla och använda fördelarna med Power BI och Power Query.

Power Query använder bra prestanda för datakällan genom en teknik som kallas frågedelegering.

Frågedelegering

Med frågedelegering i Power Query-redigeraren kan du öka dina Power BI-rapporters prestanda. Frågedelegering är den process genom vilken transformeringar och redigeringar som du gör i Power Query-redigeraren spåras samtidigt som interna frågor, eller enkla Select SQL-instruktioner, medan du aktivt gör transformeringar. Anledningen till att implementera den här processen är att se till att dessa transformeringar kan ske på den ursprungliga datakällservern och inte överbelasta Power BI-databehandlingsresurser.

Du kan använda Power Query för att läsa in data i Power BI. Använd sedan Power Query-redigeraren för att transformera dina data, till exempel byta namn på eller ta bort kolumner, lägga till, parsa, filtrera eller gruppera dina data.

Tänk dig ett scenario där du har bytt namn på några kolumner i försäljningsdata och sammanfogat två kolumner för ort och delstat i formatet "ort delstat". Under tiden spårar funktionen frågedelegering de ändringarna i interna frågor. När du sedan läser in dina data, sker transformeringarna oberoende i den ursprungliga källan, vilket garanterar att prestandan optimeras i Power BI.

Några av fördelarna med frågedelegering är:

  • Bättre effektivitet i datauppdateringar och inkrementella uppdateringar. När du importerar datatabeller med hjälp av frågedelegering kan Power BI bättre allokera resurser och uppdatera data snabbare eftersom Power BI inte behöver köra varje transformering lokalt.

  • Automatisk kompatibilitet med DirectQuery och dubbla lagringslägen. Alla datakällor för DirectQuery och dubbla lagringslägen måste ha serverdelskapacitet för bearbetning för att skapa en direkt anslutning, vilket innebär att frågedelegering är en automatisk funktion som du kan använda. Om alla transformeringar kan reduceras till en enda Select-instruktion kan frågedelegering inträffa.

I följande scenario visas frågedelegering i praktiken. I det här scenariot använder du en uppsättning frågor till flera tabeller. När du har lagt till en ny datakälla med hjälp av Power Query, och du dirigeras till Power Query-redigeraren, går du till fönstret Frågeinställningar och högerklickar på det senast tillämpade steget, enligt följande bild.

Skärmbild av det senast tillämpade steget högerklickade för att visa snabbmenyn.

Om alternativet Visa intern fråga inte är tillgängligt (visas inte i fetstil) är frågedelegering inte möjligt för det här steget, och du måste arbeta bakåt i området Tillämpade steg tills du når steget där Visa intern fråga är tillgänglig (visas i fetstil). Den här processen visar den interna fråga som används för att transformera semantikmodellen.

Interna frågor är inte möjliga för följande transformeringar:

  • Lägga till en indexkolumn
  • Sammanfoga och lägga till kolumner för olika tabeller med två olika källor
  • Ändra en kolumns datatyp

En bra riktlinje är att om du kan översätta en transformering till en Select-instruktion i SQL, som innehåller operatorer och satser såsom GROUP BY, SORT BY, WHERE, UNION ALL och JOIN så kan du använda frågedelegering.

När frågedelegering är ett alternativ för att optimera prestanda vid hämtning, import och förberedelse av data så är frågediagnostik ett annat alternativ.

Frågediagnostik

Ett annat verktyg som du kan använda för att undersöka frågeprestanda är frågediagnostik. Du kan avgöra vilka flaskhalsar som kan finnas när du läser in och transformerar dina data, uppdaterar dina data i Power Query, kör SQL-instruktioner i Power Query-redigeraren och så vidare.

Om du vill komma åt frågediagnostik i Power Query-redigeraren går du till Verktyg i menyfliksområdet Start. När du är redo att börja transformera dina data eller göra andra ändringar i Power Query-redigeraren väljer du Starta diagnostik i avsnittet Sessionsdiagnostik. När du är klar kontrollerar du att du väljer Stoppa diagnostik.

Skärmbild av fliken Verktyg med alternativ för sessionsdiagnostik i Power Query-Editor.

Om du väljer Diagnossteg ser du hur lång tid det tar att köra steget, som du ser i följande bild. Det här valet kan informera dig om ett steg tar längre tid att slutföra än andra, något som sedan fungerar som en startpunkt för ytterligare granskning.

Skärmbild av att tillämpa frågediagnostik.

Det här verktyget är användbart när du vill analysera prestanda på Power Query sidan för uppgifter som att läsa in semantiska modeller, köra datauppdateringar eller köra andra transformativa uppgifter.

Andra metoder för att optimera prestanda

Andra sätt att optimera frågeprestanda i Power BI är:

  • Bearbeta så mycket data som möjligt i den ursprungliga datakällan. Med Power Query och Power Query-redigeraren kan du bearbeta data. Bearbetningskraften som krävs för att slutföra den här aktiviteten kan dock sänka prestandan i andra delar av dina rapporter. I allmänhet är det en bra idé att bearbeta i den interna datakällan i så stor utsträckning som möjligt.

  • Använd interna SQL-frågor. När du använder DirectQuery för SQL-databaser, till exempel för vårt scenario, kontrollerar du att du inte hämtar data från lagrade procedurer eller vanliga tabelluttryck (CTE).

  • Dela upp datum och tid, om de har kombinerats. Om någon av dina tabeller har kolumner som kombinerar datum och tid ser du till att du delar upp dem i distinkta kolumner innan du importerar dem till Power BI. Den här metoden kommer att öka komprimeringsmöjligheterna.

Mer information finns i Vägledning för frågedelegering och Frågedelegering.