DirectQuery-modellek hibaelhárítása a Power BI Desktopban

Ez a cikk segítséget nyújt a Power BI Desktopban vagy a Power BI szolgáltatás fejlesztett Power BI DirectQuery-adatmodellek teljesítményproblémáinak diagnosztizálásában. A cikk azt is ismerteti, hogyan kérhet le részletes információkat a jelentések optimalizálásához.

A teljesítményproblémák diagnosztizálását a Power BI Desktopban kell kezdenie, nem pedig a Power BI szolgáltatás vagy a Power BI jelentéskészítő kiszolgáló. A teljesítményproblémák gyakran az alapul szolgáló adatforrás teljesítményszintjén függenek. Ezeket a problémákat könnyebben azonosíthatja és diagnosztizálhatja az izolált Power BI Desktop-környezetben anélkül, hogy olyan összetevőket vonhat be, mint egy helyszíni átjáró.

Ha nem találja a Power BI Desktop teljesítményproblémáit, a vizsgálat a jelentés jellemzőire összpontosíthat a Power BI szolgáltatás.

A problémákat az egyes vizualizációkhoz is meg kell próbálnia elkülöníteni, mielőtt sok vizualizációt megvizsgál egy lapon.

Teljesítményelemző

Teljesítményelemző hasznos eszköz a hibaelhárítási folyamat során felmerülő teljesítményproblémák azonosításához. Ha egyetlen lassú vizualizációt tud azonosítani egy lapon a Power BI Desktopban, Teljesítményelemző segítségével meghatározhatja, hogy a Power BI Desktop milyen lekérdezéseket küld az alapul szolgáló forrásnak.

Emellett megtekintheti a mögöttes adatforrások által kibocsátott nyomkövetéseket és diagnosztikai információkat is. Az ilyen nyomkövetések hasznos információkat tartalmazhatnak a lekérdezés végrehajtásának részleteiről és a továbbfejlesztésének módjáról.

Még a forrásból származó nyomkövetések nélkül is megtekintheti a Power BI által küldött lekérdezéseket, valamint azok végrehajtási idejét.

Feljegyzés

DirectQuery SQL-alapú források esetén Teljesítményelemző csak SQL Server-, Oracle- és Teradata-adatforrásokhoz tartozó lekérdezéseket jelenít meg.

Nyomkövetési fájl

A Power BI Desktop alapértelmezés szerint naplózza az eseményeket egy adott munkamenet során egy FlightRecorderCurrent.trc nevű nyomkövetési fájlba. Az aktuális munkamenet nyomkövetési fájlját az aktuális felhasználó AppData mappájában találja, a <User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces címen.

A következő DirectQuery-adatforrások megírják a Power BI által a nyomkövetési fájlba küldött összes lekérdezést. A napló a jövőben más DirectQuery-forrásokat is támogathat.

  • SQL Server
  • Azure SQL Database
  • Azure Synapse Analytics (korábban SQL Data Warehouse)
  • Oracle
  • Teradata
  • SAP HANA

A Power BI Desktop nyomkövetési fájlmappájának egyszerű eléréséhez válassza a Fájlbeállítások>és beállítások>lehetőséget, majd válassza a Diagnosztika lehetőséget.

Screenshot of the Diagnostics section of the Power BI Desktop Options screen with the link to open the crash dump/traces folder.

Az Összeomlási memóriaképek gyűjteménye területen válassza az Összeomlási memóriakép/nyomkövetés mappa megnyitása hivatkozást a <User>\AppData\Local\Microsoft\Power BI Desktop\Traces mappa megnyitásához.

Lépjen a mappa szülőmappájára, majd nyissa meg az AnalysisServicesWorkspaces mappát, amely a Power BI Desktop minden megnyitott példányához tartalmaz egy munkaterületi almappát. Az almappák neve egész szám utótagokkal rendelkezik, például AnalysisServicesWorkspace2058279583.

Minden AnalysisServicesWorkspace mappa tartalmaz egy Data almappát, amely tartalmazza az aktuális Power BI-munkamenetHez tartozó FlightRecorderCurrent.trc nyomkövetési fájlt. Ez a mappa eltűnik, amikor a társított Power BI Desktop-munkamenet véget ér.

A nyomkövetési fájlokat az SQL Server Profiler eszközzel nyithatja meg, amelyet az ingyenes SQL Server Management Studio (SSMS) letöltés részeként érhet el. Az SQL Server Management Studio letöltése és telepítése után nyissa meg az SQL Server Profilert.

Screenshot of SQL Server Profiler window with no highlighted traces.

Nyomkövetési fájl megnyitása:

  1. Az SQL Server Profilerben válassza a Fájl>megnyitása>nyomkövetési fájl lehetőséget.

  2. Keresse meg vagy adja meg az aktuális Power BI-munkamenet nyomkövetési fájljának elérési útját, például <Felhasználó>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces\AnalysisServicesWorkspace2058279583\Data, és nyissa meg a FlightRecorderCurrent.trc fájlt.

Az SQL Server Profiler megjeleníti az aktuális munkamenet összes eseményét. Az alábbi képernyőkép egy lekérdezés eseménycsoportját emeli ki. Minden lekérdezéscsoport a következő eseményekkel rendelkezik:

  • Egy Query Begin és Query End egy esemény, amely egy vizualizáció vagy szűrő Power BI felhasználói felületén történő módosításával, illetve a Power Query-szerkesztő lévő adatok szűrésével vagy átalakításával létrehozott DAX-lekérdezés kezdetét és végét jelöli.

  • Egy vagy több pár DirectQuery Begin és DirectQuery End esemény, amelyek a DAX-lekérdezés kiértékelésének részeként az alapul szolgáló adatforrásnak küldött lekérdezéseket jelölik.

Screenshot of SQL Server Profiler with highlighted Query Begin and Query End events.

Több DAX-lekérdezés is futtatható párhuzamosan, így a különböző csoportok eseményei egymást keresztezhetik. A csoport értékével meghatározhatja ActivityID , hogy mely események tartoznak ugyanahhoz a csoporthoz.

A következő oszlopok is érdekesek:

  • TextData: Az esemény szöveges részletei. Query End Az Query Begin események esetében a részletesség a DAX-lekérdezés. DirectQuery End A DirectQuery Begin részletek az alapul szolgáló forrásnak küldött SQL-lekérdezések. Az aktuálisan kijelölt esemény TextData értéke a képernyő alján lévő panelen is megjelenik.
  • EndTime: Az esemény befejezésének időpontja.
  • Időtartam: A DAX- vagy SQL-lekérdezés futtatásához ezredmásodpercben megadott időtartam.
  • Hiba: Hiba történt-e, ebben az esetben az esemény pirosan is megjelenik.

Az előző kép szűkíti a kevésbé érdekes oszlopok némelyikét, így könnyebben láthatja az érdekesebb oszlopokat.

Kövesse ezt a megközelítést egy nyomkövetés rögzítéséhez, amely segít diagnosztizálni egy lehetséges teljesítményproblémát:

  1. Nyisson meg egy Power BI Desktop-munkamenetet, hogy elkerülje a több munkaterületi mappa összekeverését.

  2. Végezze el az érdeklődésre számot tartó műveleteket a Power BI Desktopban. Adjon meg még néhány műveletet, hogy az érdekes események bekerüljenek a nyomkövetési fájlba.

  3. Nyissa meg az SQL Server Profilert, és vizsgálja meg a nyomkövetést. Ne feledje, hogy a Power BI Desktop bezárása törli a nyomkövetési fájlt. Emellett a Power BI Desktop további műveletei nem jelennek meg azonnal. Az új események megtekintéséhez be kell zárnia és újra meg kell nyitnia a nyomkövetési fájlt.

Tartsa az egyes munkamenetek viszonylag kicsi, talán 10 másodpercnyi művelet, nem több száz. Ez a módszer megkönnyíti a nyomkövetési fájl értelmezését. A nyomkövetési fájl mérete is korlátozott, így hosszú munkamenetek esetén előfordulhat, hogy a korai események csökkennek.

Lekérdezési és részkérési formátum

A Power BI Desktop-lekérdezések általános formátuma, hogy a lekérdezésekre hivatkozó modelltáblákhoz al lekérdezéseket használjon. A Power Query-szerkesztő lekérdezés határozza meg az alválasztási lekérdezéseket. Tegyük fel például, hogy a következő TPC-DS-táblák vannak egy SQL Server relációs adatbázisban:

Screenshot of a Power BI Desktop model view diagram that shows the related Item, Web_Sales, Customer and Date-dim TPC-DS tables.

A Power BI-vizualizációban a következő kifejezés határozza meg a mértéket SalesAmount :


SalesAmount = SUMX(Web_Sales, [ws_sales_price] * [ws_quantity])

Screenshot of a Power BI Desktop stacked column chart that displays sales amount by category.

A vizualizáció frissítése a következő képen hozza létre a T-SQL-lekérdezést. A , Itemés Date_dim a Web_Salesmodelltáblák három albekérdezésből állnak. Minden lekérdezés visszaadja a modelltábla összes oszlopát, annak ellenére, hogy a vizualizáció csak négy oszlopra hivatkozik.

Ezek az árnyékolt al lekérdezések a Power Query-lekérdezések pontos definícióját képezik. Az al lekérdezések használata nem befolyásolja a DirectQuery által támogatott adatforrások teljesítményét. Az olyan adatforrások, mint az SQL Server, optimalizálják a többi oszlopra mutató hivatkozásokat.

Ennek egyik oka, hogy a Power BI ezt a mintát használja, így megadhat egy Power Query-lekérdezést egy adott lekérdezési utasítás használatára. A Power BI a megadott módon használja a lekérdezést anélkül, hogy újra szeretné írni. Ez a minta a Common Table Expressions (CTEs) és a tárolt eljárásokat használó lekérdezési utasítások használatát korlátozza. Ezeket az utasításokat nem használhatja az al lekérdezésekben.

Screenshot of a T-SQL query that shows embedded subqueries, one for each model table.

Átjáró teljesítménye

Az átjárók teljesítményének hibaelhárításáról további információt az átjárók hibaelhárítása – Power BI című témakörben talál.

A DirectQuery szolgáltatással kapcsolatos további információkért tekintse meg a következő erőforrásokat:

Kérdése van? Kérdezze meg a Power BI-közösség