Forespørgselsfoldningsindikatorer

Notat

Før du læser denne artikel, læs Oversigt over query evaluering og query folding i Power Query for bedre at forstå, hvordan folding fungerer i Power Query.

Indikatorer for forespørgselsfoldning hjælper dig med at forstå, hvilke trin der foldes, og hvilke der ikke gør.

Når du bruger query folding-indikatorer, bliver det tydeligt, når du laver en ændring, der bryder foldningen. Denne funktion hjælper dig med hurtigt at løse problemer, undgå performanceproblemer og få bedre indsigt i dine forespørgsler. I de fleste tilfælde folder trin enten sammen eller gør det ikke. Men der findes mange tilfælde, hvor resultatet ikke er åbenlyst. Disse tilfælde diskuteres i Step-diagnostiske indikatorer (Dynamisk, Uigennemsigtig og Ukendt).

Notat

Funktionen til forespørgselsdelegeringsindikatorer er kun tilgængelig for Power Query Online.

Fortolkning af diagnosticering af forespørgselsdelegering

Når du undersøger indikatoren for forespørgselsdelegering ud for et trin, er det vigtigste at forstå, at diagnosticeringstilstanden ikke er sekventiel. Indikatoren for dette trin beskriver med andre ord, om forespørgslen som helhed, indtil dette punkt, foldes eller ej. Hvis du har en indikator, der viser, at forespørgslen ikke foldes efterfulgt af en indikator, der viser, at den foldes, betyder det, at forespørgslen indtil dette punkt foldes.

Denne fortolkning fungerer selv med en simpel forespørgsel i forhold til en SQL-kilde. Hvis du f.eks. bruger eksempeldatabasen AdventureWorks, skal du oprette forbindelse til tabellen Production.Product og indlæse data. Hvis du indlæser dette eksempel via Power Query-navigatoren, får du følgende forespørgsel:

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

Hvis du undersøger, hvordan denne kode vises i indikatorer for forespørgselsdelegering, skal du bemærke, at det første trin er uafgjort. Men det andet trin foldes, hvilket betyder, at forespørgslen op til dette punkt foldes.

Skærmbillede af trinnene Kilde og Navigation i ruden Foldningsindikator.

I dette eksempel kan de indledende trin ikke bekræftes til foldning (er uafsluttende), men det sidste trin, der genereres, når du indlæser data, foldes først. Hvordan de første trin (Kilde og nogle gange andre navigationstrin ) håndteres, afhænger af connectoren. Med SQL håndteres trinnet f.eks. som en værdi i en katalogtabel, der ikke foldes. Men så snart du vælger data til den pågældende connector, foldes de.

Omvendt kan denne indikation også betyde, at din forespørgsel foldes op til et punkt og derefter stopper med at folde. En ikke-fold-indikator betyder ikke, at intet foldes. I stedet betyder det, at ikke alt foldes. Generelt foldes alt op til den sidste foldningsindikator, hvor der sker flere handlinger efter.

Hvis du ændrer det forrige eksempel, kan du give en transformering, der aldrig foldes – brug stort på hvert ord.

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"

I indikatorerne for forespørgselsdelegering har du de samme indikatorer som tidligere, bortset fra at det sidste trin ikke foldes. Alt op til dette sidste trin udføres på datakilden, mens det sidste trin udføres lokalt.

Skærmbillede af trinnene Kilde, Navigation og Stort begyndelsesbogstav i ruden Foldningsindikator.

Indikatorer for trindiagnosticering

Forespørgselsfoldningsindikatorer bruger en underliggende forespørgselsplan og kræver, at den rapporterer information om forespørgslen. I øjeblikket understøtter forespørgselsplanen kun tabeller, så nogle tilfælde (lister, poster, primitiver) rapporterer ikke som foldning eller ej. På samme måde rapporteres konstanttabeller som uigennemsigtige.

Indikator Ikon Beskrivelse
Folde Foldeindikatoren fortæller dig, at datakilden evaluerer forespørgslen op til dette trin.
Ikke foldet Indikatoren for ikke-foldning fortæller dig, at en del af forespørgslen op til dette trin evalueres uden for datakilden. Du kan sammenligne den med den sidste foldningsindikator, hvis der er en, for at se, om du kan omarrangere din forespørgsel, så den er mere effektiv.
Kan foldes Kan folde indikatorer er ualmindelige. De betyder, at en forespørgsel "kan" foldes. De angiver enten, at foldning eller ikke-foldning bestemmes på kørselstidspunktet, når der hentes resultater fra forespørgslen, og at forespørgselsplanen er dynamisk. Disse indikatorer vises sandsynligvis kun med ODBC- eller OData-forbindelser.
Uigennemsigtig Uigennemsigtige indikatorer fortæller dig, at den resulterende forespørgselsplan er usikker af en eller anden grund. Det angiver generelt, at der er en sand "konstant"-tabel, eller at indikatorerne og værktøjet til forespørgselsplan ikke understøtter den pågældende transformering eller connector.
Ukendt Ukendte indikatorer repræsenterer fraværet af en forespørgselsplan, enten pga. en fejl eller forsøg på at køre evalueringen af forespørgselsplanen på noget andet end en tabel (f.eks. en post, en liste eller primitiv).

Eksempel på analyse

I et eksempel på en analyse skal du starte med at oprette forbindelse til tabellen Production.Product i Adventure Works (SQL). Den indledende indlæsning ligner det indledende eksempel på følgende billede.

Skærmbillede af de indledende trinindikatorer til indlæsning af tabellen Product.

Når du tilføjer flere trin, der folder sig, forlænger du den grønne linje til højre. Denne udvidelse opstår, fordi dette trin også foldes.

Skærmbillede, der viser, hvordan tilføjelse af et fjern kolonnetrin til den forrige forespørgsel udvider den grønne foldeindikatorlinje.

Når du tilføjer et trin, der ikke folder sig, ser du en anden indikator. Store bogstaver i hvert ord foldes f.eks. aldrig. Indikatoren ændres, hvilket viser, at fra og med dette trin holdt den op med at folde. Som tidligere nævnt foldes de forrige trin stadig.

Skærmbillede, der viser, hvordan tilføjelse af et trin med stort begyndelsesbogstav for hvert Word-trin opdeler foldning.

Når du tilføjer flere trin længere nedstrøms, som afhænger af Capitalize hvert trin, fortsætter de med ikke at folde.

Skærmbillede, der viser, hvordan foldning ikke sker, når du har tilføjet flere trin.

Men hvis du fjerner den kolonne, du anvendte store bogstaver på, så den optimerede forespørgselsplan kan foldes igen, får du et resultat som det følgende billede. Noget i stil med dette er dog ualmindeligt. Dette billede illustrerer, hvordan det ikke kun er rækkefølgen af trin, men også de faktiske transformationer, der gælder.

Skærmbillede, der viser, hvordan fjernelse af den problematiske kolonne gør det muligt at folde ting uden at fjerne trinnet.