Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
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.
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.
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.
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.
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.
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.
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.