Zdieľať cez


Indikátory postupného posúvania dotazov

Poznámka

Pred prečítaním tohto článku vám odporúčame prečítať si prehľad vyhodnocovania dotazov a postupné posúvanie dotazov v doplnku Power Query , aby ste lepšie pochopili fungovanie postupného posúvania v doplnku Power Query.

Indikátory postupného posúvania dotazov vám pomôžu pochopiť kroky, ktoré sa postupné posúvanie alebo nezbalia.

Pri indikátoroch postupného posúvania dotazov sa stane zrejmým, keď vykonáte zmenu, ktorá preruší postupné posúvanie. Táto funkcia vám umožňuje jednoduchšie riešiť problémy rýchlo, vyhnúť sa problémom s výkonom a získať lepší prehľad o dotazoch. Vo väčšine prípadov nabehnete, kroky sa zbalia alebo nezbalia. Existuje však mnoho prípadov, kedy výsledok nie je taký zrejmý, a tieto prípady sú popísané v indikátoroch diagnostiky krokov (Dynamické, Nepriehľadné a Neznáme).

Poznámka

Funkcia indikátorov postupného posúvania dotazov je k dispozícii len pre Power Query Online.

Interpretácia diagnostiky postupného posúvania dotazov

Pri skúmaní indikátora postupného posúvania dotazov vedľa kroku je najdôležitejšie porozumieť tomu, že stav diagnostiky nie je sekvenčný. Inými slovami, indikátor pre tento krok popisuje, či sa dotaz celkom až do tohto bodu zbalí alebo nie. Ak máte indikátor, ktorý ukazuje, že dotaz sa neskladať, za ktorým nasleduje indikátor, ktorý ukazuje, že sa postupne posúva, znamená to, že dotaz až do tohto bodu sa postupne posúva.

Tento výklad funguje aj pri jednoduchom dotaze na zdroj SQL. Pomocou ukážkovej databázy AdventureWorks sa napríklad pripojte k tabuľke Production.Product a načítajte údaje. Načítanie tejto ukážky pomocou navigátora Power Query poskytne nasledujúci dotaz:

let
  Source = Sql.Database("ServerName", "AdventureWorks"),
  Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
  Navigation

Ak budete skúmať, ako sa tento kód zobrazuje v indikátoroch postupného posúvania dotazov, všimnite si, že prvý krok je nepresvedčivý. Druhý krok sa však skladá z postupne, čo znamená, že dotaz sa až do tohto bodu postupne posúva.

Snímka obrazovky krokov Zdroj a Navigácia na table Indikátor skladania.

V tomto príklade nie je možné potvrdiť, že počiatočné kroky sa postupne posúvali (je nepresvedčivé), ale posledný krok vygenerovaný pri prvom načítaní údajov sa postupne posúva. Spôsob narábania s prvými krokmi (Zdroj a niekedy aj iné kroky navigácie ) závisí od konektora. Napríklad s SQL sa spracúva ako hodnota tabuľky katalógu, ktorá sa nezbalí. Hneď ako však vyberiete údaje pre tento konektor, údaje sa zbalia.

Naopak, toto označenie môže tiež znamenať, že váš dotaz sa zbalí do bodu a potom sa zastaví skladanie. Na rozdiel od prípadov, keď máte indikátor skladania kroku, ktorý ukazuje, že všetko sa posúva, keď máte indikátor postupného posúvania, neznamená to, že sa všetko nezloží. Namiesto toho to znamená, že "nie všetko" záhyby. Vo všeobecnosti platí, že všetko až do posledného skladacieho indikátora sa postupne posúva, pričom postupne pretrvá viac operácií.

Po úprave predchádzajúceho príkladu môžete poskytnúť transformáciu, ktorá sa nikdy nezbalí – každé slovo veľkým písmenom.

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átoroch postupného posúvania dotazov máte rovnaké indikátory ako predtým, ale posledný krok sa nezbalí. Všetko až do tohto posledného kroku sa vykoná v zdroji údajov, zatiaľ čo posledný krok sa vykoná lokálne.

Snímka obrazovky krokov Source (Zdroj), Navigation (Navigácia) a Capitalize Each Word (Každé slovo) na table Folding Indicator (Indikátor postupného posúvania)

Ukazovatele diagnostiky krokov

Indikátory postupného posúvania dotazov používajú základný plán dotazov a vyžadujú, aby bol schopný získať informácie o dotaze na jeho nahlásenie. Plán dotazov v súčasnosti podporuje iba tabuľky, a preto sa v niektorých prípadoch (zoznamy, záznamy, primitívne) nezostáv nezobrazujú ako postupné posúvanie alebo nie. Podobne platí, že zostava konštantných tabuliek je nepriehľadná.

Indikátor Ikona Description
Skladacie Indikátor postupného posúvania označuje, že dotaz až do tohto kroku je vyhodnotený zdrojom údajov.
Nie postupné posúvanie Indikátor postupného posúvania znamená, že časť dotazu až do tohto kroku sa vyhodnocuje mimo zdroja údajov. Môžete ho porovnať s posledným indikátorom skladania, ak existuje, a zistiť, či možno zmeniť usporiadanie dotazu tak, aby malo výkonnejší výkon.
Možno zbalí Môže fold ukazovatele sú nezvyčajné. Znamená to, že dotaz sa môže postupne posúvať. Označujú buď to, že postupné posúvanie alebo postupné posúvanie sa určuje v čase spustenia, pri vytváraní výsledkov z dotazu a že plán dotazov je dynamický. Tieto ukazovatele sa pravdepodobne zobrazia len s pripojeniami ODBC alebo OData.
Nepriehľadné Nepriehľadné indikátory zobrazujú, že výsledný plán dotazu je z nejakého dôvodu nepresvedčivý. Zvyčajne označuje, že existuje skutočná "konštantná" tabuľka alebo že transformácia alebo konektor nie sú podporované ukazovateľmi a nástrojom plánu dotazu.
Neznámy Neznáme indikátory predstavujú absenciu plánu dotazu, a to buď z dôvodu chyby, alebo pokusu o spustenie vyhodnocovania plánu dotazu na niečo iné ako tabuľku (napríklad záznam, zoznam alebo primitívne).

Príklad analýzy

Ak chcete použiť príklad na analýzu, začnite pripojením k tabuľke Production.Product v službe Adventure Works (SQL). Počiatočné načítanie, podobne ako v počiatočnom príklade, vyzerá ako na nasledujúcom obrázku.

Snímka obrazovky s indikátormi počiatočného kroku na načítanie tabuľky Product (Produkt).

Pridaním ďalších krokov, ktoré sa pohnú, sa táto zelená čiara rozšíri na pravej strane. K tomuto rozšíreniu dochádza preto, lebo tento krok sa tiež posúva.

Snímka obrazovky znázorňujúca, ako pridanie kroku odstránenia stĺpca k predchádzajúcemu dotazu rozširuje zelenú čiaru indikátora skladania.

Pridanie kroku, ktorý sa nezbalí, zobrazí iný indikátor. Napríklad: Každé slovo sa nikdy nezloží veľkým písmenom. Indikátor sa zmení a ukazuje, že v tomto kroku prestalo skladanie. Ako už bolo spomenuté, predchádzajúce kroky sa postupne posúvajú.

Snímka obrazovky znázorňujúca, ako pridajte postupné posúvanie krokov pri každom slove veľkým písmenom.

Pridávanie ďalších krokov v smere od prúdu, ktoré závisia od veľkých písmen, sa každý krok nezbalí.

Snímka obrazovky znázorňujúca, ako sa po pridaní ďalších krokov postupné posúvanie nevyskytuje.

Ak však odstránite stĺpec, na ktorý ste použili veľké písmeno, optimalizovaný plán dotazov sa môže postupne posúvať, získate výsledok, ako je to na nasledujúcom obrázku. Avšak, niečo ako toto je nezvyčajné. Na tomto obrázku je znázornené, ako to nie je len poradie krokov, ale aj skutočné transformácie.

Snímka obrazovky zobrazujúca, ako odstránenie problematického stĺpca umožňuje postupné posúvanie bez odstránenia kroku.