Forespørgselsfoldningsindikatorer

Bemærk

Før du læser denne artikel, anbefaler vi, at du læser Oversigt over evaluering af forespørgsler og forespørgselsdelegering i Power Query for bedre at forstå, hvordan foldning fungerer i Power Query.

Forespørgselsdelegeringsindikatorer hjælper dig med at forstå de trin, der foldes eller ikke foldes.

Med indikatorer for forespørgselsdelegering bliver det tydeligt, når du foretager en ændring, der bryder foldningen. Denne funktion hjælper dig med nemmere at løse problemer hurtigt, undgå problemer med ydeevnen i første omgang og få bedre indsigt i dine forespørgsler. I de fleste tilfælde vil trin foldes eller ikke foldes. Men der er mange tilfælde, hvor resultatet ikke er så indlysende, og disse tilfælde beskrives i Indikatorer for trindiagnosticering (Dynamisk, Uigennemsigtig og Ukendt).

Bemærk

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.

Source and Navigation steps in Folding Indicator pane.

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 den f.eks. som en værdi i en katalogtabel, der ikke foldes. Men så snart du vælger data for den pågældende connector, foldes de.

Omvendt kan det også betyde, at din forespørgsel foldes op til et punkt og derefter holder op med at folde. I modsætning til det tilfælde, hvor du har en foldeindikator for det trin, der viser, at alt foldes, betyder det ikke, at alt ikke foldes, når du har en indikator, der ikke foldes. I stedet betyder det, at "ikke alt" folder. Generelt foldes alt op til den sidste foldningsindikator, hvor der sker flere handlinger efter.

Hvis du ændrer eksemplet ovenfor, 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 ovenfor, 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.

Source, Navigation, and Capitalize Each Word steps in Folding Indicator pane.

Indikatorer for trindiagnosticering

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

Indikator Ikon Beskrivelse
Folde Folding indicator for 'will fold'. Foldeindikatoren fortæller dig, at forespørgslen op til dette trin evalueres af datakilden.
Ikke foldet Folding indicator for 'not folding'. 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 Folding indicator for 'might fold'. 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 Folding indicator for 'opaque, inconclusive folding'. 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 denne transformering eller connector ikke understøttes af værktøjet til indikatorer og forespørgselsplan.
Ukendt Folding indicator for 'no query plan'. 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, der ligner eksemplet ovenfor, ligner følgende billede.

Initial step indicators for loading the Product table.

Hvis du tilføjer flere trin, der foldes, udvides den grønne linje i højre side. Denne udvidelse opstår, fordi dette trin også foldes.

Adding a remove column step to the previous query, extending the green folding indicator line.

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

Adding a Capitalize Each Word step to break folding.

Tilføjelse af flere trin neden for, der afhænger af Kapitaliser hvert trin , foldes fortsat ikke.

Adding more steps that don't fold.

Men hvis du fjerner den kolonne, du har anvendt store bogstaver på, så den optimerede forespørgselsplan kan foldes igen, får du et resultat som 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.

Showing how removing the problematic column allows things to fold without removing the step.