Læs på engelsk

Del via


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 løber du ind i trin, der 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.

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 den 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. 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 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ø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) rapporterer ikke som foldning eller ej. På samme måde rapporteres konstanttabeller som uigennemsigtige.

Indikator Ikon Beskrivelse
Folde Foldeindikatoren fortæller dig, at forespørgslen op til dette trin evalueres af datakilden.
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 denne transformering eller connector ikke understøttes af værktøjet til indikatorer og forespørgselsplan.
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.

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.

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

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, 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.

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

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

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.

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