Wskaźniki składania zapytań

Uwaga

Przed przeczytaniem tego artykułu zalecamy zapoznanie się z artykułem Omówienie oceny zapytań i składania zapytań w dodatku Power Query , aby lepiej zrozumieć, jak działa składanie w dodatku Power Query.

Wskaźniki składania zapytań ułatwiają zrozumienie kroków, które składają się lub nie składają.

Dzięki wskaźnikom składania zapytań staje się oczywiste, gdy wprowadzasz zmianę, która przerywa składanie. Ta funkcja ułatwia szybkie rozwiązywanie problemów, unikanie problemów z wydajnością w pierwszej kolejności i lepsze wgląd w zapytania. W większości przypadków wystąpią kroki złożone lub nie zostaną złożone. Istnieje jednak wiele przypadków, w których wynik nie jest tak oczywisty, a przypadki te są omawiane w wskaźnikach diagnostyki kroków (Dynamiczny, Nieprzezroczystych i Nieznanych).

Uwaga

Funkcja wskaźników składania zapytań jest dostępna tylko dla usługi Power Query Online.

Interpretowanie diagnostyki składania zapytań

Podczas badania wskaźnika składania zapytań obok kroku najważniejsze jest, aby zrozumieć, że stan diagnostyczny nie jest sekwencyjny. Innymi słowy, wskaźnik dla tego kroku opisuje, czy zapytanie jako całość, aż do tego punktu, składa się, czy nie. Jeśli masz wskaźnik, który pokazuje, że zapytanie nie składa się, a następnie wskaźnik, który pokazuje, że składa się, oznacza to, że zapytanie do tego punktu składa się.

Ta interpretacja działa nawet w przypadku prostego zapytania względem źródła SQL. Na przykład przy użyciu przykładowej bazy danych AdventureWorks połącz się z tabelą Production.Product i załaduj dane. Załadowanie tego przykładu za pomocą nawigatora dodatku Power Query daje następujące zapytanie:

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

Jeśli sprawdzisz, jak ten kod jest wyświetlany w wskaźnikach składania zapytań, zauważysz, że pierwszy krok jest niejednoznaczny. Jednak drugi krok składa się, co oznacza, że zapytanie do tego punktu składa się.

Source and Navigation steps in Folding Indicator pane.

W tym przykładzie nie można potwierdzić składania początkowych kroków (jest niejednoznaczny), ale ostatni krok wygenerowany podczas początkowego ładowania danych jest składany. Sposób obsługi pierwszych kroków (źródło, a czasami inne kroki nawigacji ) zależy od łącznika. Na przykład usługa SQL jest obsługiwana jako wartość tabeli wykazu, która nie jest składana. Jednak po wybraniu danych dla tego łącznika zostaną złożone.

Z drugiej strony może to oznaczać, że zapytanie składa się do punktu, a następnie zatrzymuje składanie. W przeciwieństwie do sytuacji, gdy masz wskaźnik składania dla kroku, który pokazuje, że wszystko składa się, gdy nie ma wskaźnika składania, nie oznacza, że wszystko nie składa się. Zamiast tego oznacza to, że "nie wszystko" składa się. Ogólnie rzecz biorąc, wszystko do ostatniego wskaźnika składania składa się, a więcej operacji dzieje się po.

Modyfikując przykład z powyższego, możesz dać przekształcenie, które nigdy nie składa się — wielką literą każdego wyrazu.

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"

W wskaźnikach składania zapytań masz takie same wskaźniki jak powyżej, z wyjątkiem ostatniego kroku nie składa się. Wszystkie elementy do tego ostatniego kroku zostaną wykonane w źródle danych, a ostatni krok zostanie wykonany lokalnie.

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

Wskaźniki diagnostyczne kroków

Wskaźniki składania zapytań używają bazowego planu zapytania i wymagają, aby można było uzyskać informacje o zapytaniu w celu raportowania. Obecnie plan zapytania obsługuje tylko tabele, więc niektóre przypadki (listy, rekordy, typy pierwotne) nie będą raportować jako składanie lub nie. Podobnie tabele stałe raportują jako nieprzezroczyste.

Wskaźnik Icon opis
Składane Folding indicator for 'will fold'. Wskaźnik składania informuje, że zapytanie do tego kroku zostanie ocenione przez źródło danych.
Nie składane Folding indicator for 'not folding'. Wskaźnik not-folding informuje, że część zapytania do tego kroku zostanie obliczona poza źródłem danych. Możesz porównać go z ostatnim wskaźnikiem składania, jeśli istnieje, aby sprawdzić, czy można zmienić kolejność zapytania, aby było bardziej wydajne.
Może składać się Folding indicator for 'might fold'. Mogą składać się wskaźniki są rzadkie. Oznaczają one, że zapytanie "może" składać się. Wskazują one, że składanie lub składanie zostanie określone w czasie wykonywania, podczas ściągania wyników z zapytania i że plan zapytania jest dynamiczny. Te wskaźniki prawdopodobnie pojawią się tylko w przypadku połączeń ODBC lub OData.
Nieprzezroczyste Folding indicator for 'opaque, inconclusive folding'. Nieprzezroczyste wskaźniki informują, że wynikowy plan zapytania jest niejednoznaczny z jakiegoś powodu. Zazwyczaj wskazuje, że istnieje prawdziwa tabela "stała" lub że transformacja lub łącznik nie jest obsługiwany przez wskaźniki i narzędzie do planowania zapytań.
Nieznane Folding indicator for 'no query plan'. Nieznane wskaźniki reprezentują brak planu zapytania z powodu błędu lub próby uruchomienia oceny planu zapytania na innej niż tabela (np. rekord, lista lub pierwotny).

Przykładowa analiza

Aby uzyskać przykładową analizę, zacznij od nawiązania połączenia z tabelą Production.Product w usłudze Adventure Works (SQL). Początkowe obciążenie podobne do powyższego przykładu wygląda jak na poniższej ilustracji.

Initial step indicators for loading the Product table.

Dodanie kolejnych kroków, które składają się, spowoduje rozszerzenie tej zielonej linii po prawej stronie. To rozszerzenie występuje, ponieważ ten krok również składa się.

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

Dodanie kroku, który nie składa się, wyświetla inny wskaźnik. Na przykład wielką literą każdego słowa nigdy nie składa się. Wskaźnik zmienia się, pokazując, że zgodnie z tym krokiem zostanie zatrzymane składanie. Jak wspomniano wcześniej, poprzednie kroki będą nadal składane.

Adding a Capitalize Each Word step to break folding.

Dodanie kolejnych kroków podrzędnych, które zależą od capitalize każdego kroku , będzie nadal nie składać.

Adding more steps that don't fold.

Jeśli jednak usuniesz kolumnę, do której zastosowano wielkie litery, tak aby zoptymalizowany plan zapytania mógł zostać złożony jeszcze raz, otrzymasz wynik podobny do poniższego obrazu. Jednak coś takiego jest nietypowe. Na tym obrazie pokazano, jak to nie tylko kolejność kroków, ale także rzeczywiste przekształcenia, które mają zastosowanie.

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