Riešenie problémov s modelmi DirectQuery v aplikácii Power BI Desktop

Tento článok vám pomôže diagnostikovať problémy s výkonom dátových modelov služby Power BI DirectQuery, ktoré vyvíjate v aplikácii Power BI Desktop alebo v služba Power BI. Tento článok popisuje aj to, ako získať podrobné informácie, ktoré vám pomôžu optimalizovať zostavy.

Diagnostikovať problémy s výkonom by ste mali začať skôr v aplikácii Power BI Desktop než v služba Power BI alebo Power BI Report Serveri. Problémy s výkonom často závisia od úrovne výkonu základného zdroja údajov. Tieto problémy môžete jednoduchšie identifikovať a diagnostikovať v izolovanom prostredí aplikácie Power BI Desktop bez toho, aby boli potrebné súčasti, ako je napríklad lokálna brána.

Ak nenájdete problémy s výkonom v aplikácii Power BI Desktop, môžete sa zamerať na podrobnosti zostavy v služba Power BI.

Ak sa pozriete na mnohé vizuály na strane, mali by ste sa tiež pokúsiť izolovať problémy v jednotlivých vizuáloch.

Performance Analyzer

Analyzátor výkonu je užitočný nástroj na identifikáciu problémov s výkonom v rámci procesu riešenia problémov. Ak dokážete identifikovať jeden pomalý vizuál na stránke v aplikácii Power BI Desktop, môžete použiť Analyzátor výkonu na určenie dotazov, ktoré Power BI Desktop odošle do základného zdroja.

Tiež by ste mohli zobraziť informácie o sledovaní a diagnostike, ktoré používajú základné zdroje údajov. Takéto sledovania môžu obsahovať užitočné informácie o podrobnostiach o spustení dotazu a o tom, ako ho vylepšiť.

Dokonca aj bez trasovaní zo zdroja môžete zobraziť dotazy odoslané službou Power BI spolu s ich časmi vykonania.

Poznámka

V prípade zdrojov s technológiou DirectQuery SQL Analyzátor výkonu zobrazia dotazy iba pre zdroje údajov SQL Server, Oracle a Teradata.

Súbor sledovania

V predvolenom nastavení zaznamenáva aplikácia Power BI Desktop udalosti počas danej relácie do súboru sledovania s názvom FlightRecorderCurrent.trc. Súbor sledovania aktuálnej relácie nájdete v priečinku AppData aktuálneho používateľa v pracovnom <priestore User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces.

Nasledujúce zdroje údajov DirectQuery zapíšu všetky dotazy, ktoré služba Power BI odošle do súboru sledovania. Denník môže v budúcnosti podporovať iné zdroje DirectQuery.

  • SQL Server
  • Databáza Azure SQL
  • Azure Synapse Analytics (predtým Sklad údajov SQL)
  • Oracle
  • Teradata
  • SAP HANA

Ak sa chcete jednoducho dostať do priečinka súborov sledovania v aplikácii Power BI Desktop, vyberte položky Súbor>Možnosti a nastavenia>Možnosti a potom vyberte položku Diagnostika.

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

V časti Zhromažďovanie výpisov pri zlyhaní vyberte prepojenie Otvoriť priečinok s výpismi pri zlyhaní/so sledovaním a otvorte <priečinok User>\AppData\Local\Microsoft\Power BI Desktop\Traces.

Prejdite do nadradeného priečinka tohto priečinka a potom otvorte priečinok AnalysisServicesWorkspaces , ktorý obsahuje jeden podpriečinok pracovného priestoru pre každú otvorenú inštanciu aplikácie Power BI Desktop. Názvy podpriečinkov majú prípony celých čísel, napríklad AnalysisServicesWorkspace2058279583.

Každý priečinok AnalysisServicesWorkspace obsahuje podpriečinok Data , ktorý obsahuje súbor sledovania FlightRecorderCurrent.trc pre aktuálnu reláciu služby Power BI. Tento priečinok sa po skončení relácie aplikácie Power BI Desktop prestane zobrazovať.

Súbory sledovania môžete otvoriť pomocou nástroja SQL Server Profiler, ktorý môžete získať ako súčasť bezplatného sťahovania aplikácie SQL Server Management Studio (SSMS). Po stiahnutí a inštalácii aplikácie SQL Server Management Studio otvorte nástroj SQL Server Profiler.

Screenshot of SQL Server Profiler window with no highlighted traces.

Otvorenie súboru sledovania:

  1. V rozhraní SQL Server Profiler vyberte položky Súbor>Otvoriť>súbor sledovania.

  2. Prejdite alebo zadajte cestu k súboru sledovania aktuálnej relácie služby Power BI, ako <je napríklad User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces\AnalysisServicesWorkspace2058279583\Data a otvorte súbor FlightRecorderCurrent.trc.

Nástroj SQL Server Profiler zobrazí všetky udalosti aktuálnej relácie. Nasledujúca snímka obrazovky zvýrazňuje skupinu udalostí pre dotaz. Každá skupina dotazov má nasledujúce udalosti:

  • Udalosti Query Begin aQuery End, ktoré predstavujú začiatok a koniec dotazu jazyka DAX generovaného zmenou vizuálu alebo filtra v používateľskom rozhraní služby Power BI, alebo z filtrovania alebo transformácie údajov v Editor Power Query.

  • Jeden alebo viacero párov DirectQuery Begin udalostí a DirectQuery End , ktoré predstavujú dotazy odoslané na základný zdroj údajov ako súčasť vyhodnocovania dotazu jazyka DAX.

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

Súbežne môže bežať viacero dotazov jazyka DAX, takže udalosti z rôznych skupín sa môžu prelínať. Hodnotu ActivityID hodnoty môžete použiť na určenie udalostí danej skupiny.

Zaujímajú sa aj nasledujúce stĺpce:

  • TextData (Textové údaje): Textové detaily udalosti. V prípade Query Begin udalostí a Query End podrobností je dotaz DAX. V prípade DirectQuery Begin udalostí a DirectQuery End je v podrobnostiach popísaný dotaz SQL odoslaný na základný zdroj. Hodnota TextData pre aktuálne vybratú udalosť sa zobrazí aj v table v dolnej časti obrazovky.
  • EndTime (Koncový čas): Čas dokončenia udalosti.
  • Duration (Trvanie): Čas v milisekundách potrebný na spustenie dotazu jazyka DAX alebo SQL.
  • Chyba: Vyskytla sa chyba a v takom prípade sa udalosť zobrazí červenou farbou.

Na predchádzajúcom obrázku sú zúžené niektoré menej zaujímavé stĺpce, aby ste mohli jednoduchšie vidieť zaujímavé stĺpce.

Ak chcete zaznamenať stopu, ktorá vám pomôže diagnostikovať potenciálny problém s výkonom, postupujte podľa tohto prístupu:

  1. Otvorte jednu reláciu aplikácie Power BI Desktop, aby ste predišli zámene s viacerými priečinkami pracovného priestoru.

  2. V aplikácii Power BI Desktop vykonajte množinu akcií, ktoré ho zaujímajú. Zahrňte aj niekoľko ďalších akcií, aby ste sa uistili, že akcie, ktoré zaujímajú, sa zaznamenajú do súboru sledovania.

  3. Otvorte nástroj SQL Server Profiler a preskúmajte sledovanie. Nezabúdajte, že keď zatvoríte aplikáciu Power BI Desktop, súbor sledovania sa odstráni. Ďalšie akcie vykonané v aplikácii Power BI Desktop sa nezobrazia okamžite. Ak chcete zobraziť nové udalosti, musíte zavrieť a znova otvoriť súbor sledovania.

Snažte sa, aby jednotlivé relácie boli primerane malé, napríklad desať sekúnd akcií, nie niekoľko stoviek. Týmto spôsobom budete môcť ľahšie interpretovať súbor sledovania. Existuje tiež obmedzenie veľkosti súboru sledovania, takže pri dlhých reláciách môže dôjsť k poklesu počiatočných udalostí.

Formát dotazu a poddotazu

Všeobecný formát dotazov aplikácie Power BI Desktop je použitie poddotazov pre každú tabuľku modelu, na ktorá sa odkazujú dotazy. Dotaz Editor Power Query definuje dotazy čiastkového výberu. Predpokladajme napríklad, že máte nasledujúce tabuľky TPC-DS v relačnej databáze SQL Servera:

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

Vo vizuáli Power BI definuje mierku SalesAmount nasledujúci výraz:


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

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

Obnovením vizuálu sa vytvorí dotaz T-SQL na nasledujúcom obrázku. Existujú tri poddotazy pre Web_Salestabuľky , Itema Date_dim model. Každý dotaz vráti všetky stĺpce tabuľky modelu, aj keď vizuál odkazuje len na štyri stĺpce.

Poddotazy sú presnou definíciou dotazov Power Query. Toto použitie poddotazov neovplyvňuje výkon zdrojov údajov, ktoré DirectQuery podporuje. Zdroje údajov, napríklad SQL Server, optimalizujú odkazy na ostatné stĺpce.

Jedným z dôvodov, prečo Power BI používa tento vzor, je to, že môžete definovať dotaz Power Query tak, aby používal špecifický príkaz dotazu. Power BI dotaz použije v poskytnutej podobe bez pokusu o jeho prepísanie. Tento vzor obmedzuje používanie príkazov dotazu, ktoré používajú výrazy CTE (Common Table Expressions) a uložené procedúry. Tieto príkazy nie je možné použiť v poddotazoch.

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

Výkon brány

Informácie o riešení problémov s výkonom brány nájdete v téme Riešenie problémov s bránami – Power BI.

Ďalšie informácie o režime DirectQuery získate v nasledujúcich zdrojoch:

Máte nejaké otázky? Skúste sa spýtať Komunita Power BI