Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Než si přečtete tento článek, přečtěte si přehled vyhodnocení dotazů a posouvání dotazů v Power Query, abyste lépe pochopili, jak skládání funguje v Power Query.
Indikátory posouvání dotazů vám pomůžou pochopit, které kroky se skládají a které kroky ne. Ke složení kroku dojde, když Power Query převede transformace tohoto kroku do dotazu na zdroj dat a spustí je ve zdroji dat.
Když použijete indikátory posouvání dotazů, bude jasné, když uděláte změnu, která přeruší posouvání. Tato funkce vám pomůže vyřešit problémy, vyhnout se problémům s výkonem a získat lepší přehled o dotazech. Ve většině případů se kroky buď sbalí, nebo nesbalí. Existuje ale mnoho případů, kdy výsledek není jasný. V části Indikátory diagnostiky kroku jsou tyto případy (může se skládat, neprůkazné a neznámé).
Poznámka:
Funkce indikátorů posouvání dotazů je dostupná jenom pro Power Query Online.
Interpretace diagnostiky posouvání dotazů
V Power Query Online indikátor skládání dotazu vedle kroku ukazuje, jestli se dotaz jako celek do tohoto kroku skládá. Stav diagnostiky není sekvenční. Pokud indikátor ukazuje, že se dotaz neskládá, a po něm následuje indikátor, který ukazuje, že se dotaz skládá, pak se dotaz až do daného bodu skládá.
Tato interpretace funguje i s jednoduchým dotazem na zdroj SQL. Připojte se například k tabulce Production.Product v ukázkové databázi AdventureWorks a pak načtěte data. Načtení této ukázky prostřednictvím navigátoru Power Query poskytuje následující dotaz:
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
Navigation
Pokud prozkoumáte, jak se tento kód zobrazuje v indikátorech posouvání dotazů, všimněte si, že první krok je neprůkazný. Druhý krok se ale složí, což znamená, že dotaz až do té chvíle složí.
V tomto příkladu nelze u počátečních kroků potvrdit, zda podporují skládání (výsledek není jednoznačný), ale poslední krok, který se vygeneruje při počátečním načtení dat, skládání podporuje. Způsob zpracování prvních kroků (zdrojových a někdy jiných navigačních kroků) závisí na konektoru. Například u SQL se tento krok zpracovává jako hodnota tabulky katalogu, která se nepřeloží. Jakmile ale vyberete data pro tento konektor, zhroutí se.
Naopak tato indikace může znamenat, že váš dotaz se složí až do určitého bodu a pak zastaví skládání. To, že se nezobrazuje indikátor skládání, neznamená, že se nic neskládá. Místo toho to znamená, že ne všechno se dá složit. Obecně platí, že vše až do posledního skládacího indikátoru se sklání, a další operace probíhají potom.
Při úpravě předchozího příkladu můžete dát transformaci, která se nikdy nepřeloží – Velká písmena u každého slova.
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
#"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
#"Capitalized each word"
V indikátorech posouvání dotazů máte stejné indikátory jako dříve, s výjimkou posledního kroku se nepřeloží. Všechno až do tohoto posledního kroku se provádí ve zdroji dat, zatímco poslední krok se provádí místně.
Diagnostické indikátory kroků
Indikátory posouvání dotazů používají podkladový plán dotazu a vyžadují, aby hlásily informace o dotazu. V současné době plán dotazu podporuje pouze tabulky, takže v některých případech (seznamy, záznamy, primitivy) není hlášeno, zda jsou skládací nebo nikoliv. Podobně se konstantní tabulky hlásí jako neprůhledné.
| Indikátor | Ikona | Popis |
|---|---|---|
| Skládací |
|
Ukazatel fázování vám říká, že zdroj dat vyhodnocuje dotaz až do tohoto kroku. |
| Neskládací |
|
Indikátor neskládání vám říká, že část dotazu až do tohoto kroku se vyhodnocuje mimo zdroj dat. Můžete ho porovnat s posledním indikátorem posouvání, pokud existuje, abyste zjistili, jestli můžete změnit uspořádání dotazu tak, aby byl výkonnější. |
| Může se posunout |
|
Indikátory, které se mohou složit, jsou neobvyklé. Mají na mysli, že dotaz "může" být přeložen. Označují buď, že složení nebo nesložení je určeno během načítání výsledků z dotazu, a že plán dotazu je dynamický. Tyto indikátory se pravděpodobně zobrazí pouze u připojení ODBC nebo OData. |
| Neprůhledné |
|
Neprůzné indikátory vám říkají, že výsledný plán dotazů je z nějakého důvodu neprůkazný. Obecně označuje, že existuje skutečná "konstantní" tabulka nebo že indikátory a nástroj plánu dotazů nepodporují transformaci nebo spojnici. |
| Neznámý |
|
Neznámé indikátory představují nepřítomnost plánu dotazu, a to buď kvůli chybě, nebo pokusu o spuštění vyhodnocení plánu dotazu na něco jiného než v tabulce (například záznam, seznam nebo primitiv). |
Analýza indikátorů posouvání dotazů
Pokud chcete analyzovat indikátory posouvání dotazů, připojte se k tabulce Production.Product v AdventureWorks (SQL). Při počátečním načtení se krok Zdroj zobrazuje jako neprůkazný a krok Navigace jako sbalený, jak ukazuje následující obrázek.
Když přidáte další kroky, které přeložíte, rozšíříte zelenou čáru vpravo. K tomuto rozšíření dochází, protože tento krok se také zavine.
Když přidáte krok, který nelze sbalit, zobrazí se jiný indikátor. Například Každé slovo se začíná velkým písmenem nikdy neselže. Indikátor se změní a ukazuje, že v tomto kroku přestal se skládáním. Jak už bylo zmíněno dříve, předchozí kroky jsou stále platné.
Když přidáte další navazující kroky, které závisejí na Velká písmena na začátku každého slova, stále se nebudou skládat.
Pokud ale odeberete sloupec, na který jste použili velká písmena, můžete optimalizovaný plán dotazu znovu sbalit. V tomto neobvyklém výsledku se poslední krok přeloží, i když se předchozí krok nepřeloží, jak je znázorněno na následujícím obrázku. Tento výsledek ukazuje, jak skládání závisí jak na pořadí kroků, tak na použitých transformacích.