Udostępnij za pośrednictwem


Przykłady składania zapytań

Ten artykuł zawiera przykładowe scenariusze dla każdego z trzech możliwych wyników składania zapytań. Zawiera również kilka sugestii dotyczących sposobu, w jaki najlepiej wykorzystać mechanizm składania zapytań, oraz wpływ, jaki może mieć w zapytaniach.

Scenariusz

Wyobraź sobie scenariusz, w którym korzystając z bazy danych Wide World Importers dla bazy danych SQL usługi Azure Synapse Analytics, należy utworzyć zapytanie w dodatku Power Query, które łączy się z fact_Sale tabelą i pobiera ostatnią 10 sprzedaży tylko z następującymi polami:

  • Klucz sprzedaży
  • Klucz klienta
  • Klucz daty faktury
  • opis
  • Ilość

Uwaga

W celach demonstracyjnych w tym artykule użyto bazy danych opisanej w samouczku dotyczącym ładowania bazy danych Wide World Importers do usługi Azure Synapse Analytics. Główną różnicą w tym artykule jest fact_Sale tabela zawierająca tylko dane dla roku 2000, w sumie 3644 356 wierszy.

Chociaż wyniki mogą nie być dokładnie zgodne z wynikami uzyskanymi w ramach samouczka z dokumentacji usługi Azure Synapse Analytics, celem tego artykułu jest przedstawienie podstawowych pojęć i wpływu składania zapytań na zapytania.

Przykładowa tabela danych wyjściowych pochodząca z tabeli fact_Sale bazy danych Azure Synapse Analytics Wide World Importers.

W tym artykule przedstawiono trzy sposoby osiągnięcia tych samych danych wyjściowych z różnymi poziomami składania zapytań:

  • Brak składania zapytań
  • Częściowe składanie zapytań
  • Składanie pełnych zapytań

Brak przykładu składania zapytań

Ważne

Zapytania, które opierają się wyłącznie na źródłach danych bez struktury lub które nie mają aparatu obliczeniowego, takiego jak pliki CSV lub Excel, nie mają możliwości składania zapytań. Oznacza to, że dodatek Power Query ocenia wszystkie wymagane przekształcenia danych przy użyciu aparatu Power Query.

Po nawiązaniu połączenia z bazą danych i przejściu fact_Sale do tabeli wybierz przekształcenie Zachowaj dolne wiersze znajdujące się w grupie Zmniejsz wiersze na karcie Narzędzia główne.

Zachowaj przekształcenia dolnych wierszy znajdujące się wewnątrz grupy Zmniejsz wiersze na karcie Narzędzia główne.

Po wybraniu tej transformacji zostanie wyświetlone nowe okno dialogowe. W tym nowym oknie dialogowym możesz wprowadzić liczbę wierszy, które chcesz zachować. W tym przypadku wprowadź wartość 10, a następnie wybierz przycisk OK.

Wprowadzanie wartości 10 w oknie dialogowym Zachowaj dolne wiersze.

Napiwek

W tym przypadku wykonanie tej operacji daje wynik ostatniej dziesięciu sprzedaży. W większości scenariuszy zalecamy podanie bardziej jawnej logiki definiującej, które wiersze są uznawane za ostatnie, stosując operację sortowania w tabeli.

Następnie wybierz przekształcenie Wybierz kolumny znalezione w grupie Zarządzaj kolumnami na karcie Narzędzia główne . Następnie możesz wybrać kolumny, które chcesz zachować z tabeli, i usunąć resztę.

Wybranie przekształcenia Wybierz kolumny dla przykładu bez składania zapytań.

Na koniec w oknie dialogowym Wybieranie kolumn wybierz Sale Keykolumny , Customer Key, Invoice Date Key, Descriptioni Quantity , a następnie wybierz przycisk OK.

Wybieranie kolumn Klucz sprzedaży, Klucz klienta, Klucz faktury, Opis i Ilość dla przykładu bez składania zapytań.

Poniższy przykładowy kod to pełny skrypt języka M dla utworzonego zapytania:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Kept bottom rows" = Table.LastN(Navigation, 10),
  #"Choose columns" = Table.SelectColumns(#"Kept bottom rows", {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"})
in
  #"Choose columns""

Brak składania zapytań: omówienie oceny zapytania

W obszarze Zastosowane kroki w edytorze Power Query zauważysz, że wskaźniki składania zapytań dla zachowanych dolnych wierszy i Wybierz kolumny są oznaczone jako kroki, które zostaną ocenione poza źródłem danych lub, innymi słowy, przez aparat Power Query.

Okienko Zastosowane kroki dla zapytania ze wskaźnikami składania zapytań pokazującymi przechowywane dolne wiersze i kroki Usunięte inne kolumny.

Możesz kliknąć prawym przyciskiem myszy ostatni krok zapytania, jedną o nazwie Wybierz kolumny i wybrać opcję, która odczytuje widok planu zapytania. Celem planu zapytania jest udostępnienie szczegółowego widoku sposobu uruchamiania zapytania. Aby dowiedzieć się więcej na temat tej funkcji, przejdź do tematu Plan zapytań.

Plan zapytania dla utworzonego zapytania z wieloma węzłami, z których dwa znajdują się w prostokątze reprezentującym węzły, które będą oceniane przez aparat Power Query.

Każde pole na poprzedniej ilustracji jest nazywane węzłem. Węzeł reprezentuje podział operacji w celu spełnienia tego zapytania. Węzły reprezentujące źródła danych, takie jak program SQL Server w powyższym przykładzie Value.NativeQuery i węzeł, reprezentują część zapytania odciążonego do źródła danych. Pozostałe węzły, w tym przypadku Table.LastN i Table.SelectColumns wyróżnione w prostokątze na poprzednim obrazie, są oceniane przez aparat Power Query. Te dwa węzły reprezentują dodane dwa przekształcenia: Przechowywane dolne wiersze i Wybierz kolumny. Pozostałe węzły reprezentują operacje wykonywane na poziomie źródła danych.

Aby wyświetlić dokładne żądanie wysłane do źródła danych, wybierz pozycję Wyświetl szczegóły w węźle Value.NativeQuery .

Instrukcja SQL znaleziona wewnątrz elementu Value.NativeQuery, która reprezentuje żądanie wszystkich pól i rekordów z tabeli fact_Sale w bazie danych.

To żądanie źródła danych jest w języku natywnym źródła danych. W tym przypadku język ten to SQL, a ta instrukcja reprezentuje żądanie dla wszystkich wierszy i pól z fact_Sale tabeli.

Skonsultowanie się z tym żądaniem źródła danych może pomóc lepiej zrozumieć historię, którą plan zapytania próbuje przekazać:

  • Sql.Database: ten węzeł reprezentuje dostęp do źródła danych. Połączenie do bazy danych i wysyła żądania metadanych, aby zrozumieć jego możliwości.
  • Value.NativeQuery: reprezentuje żądanie wygenerowane przez dodatek Power Query w celu spełnienia zapytania. Dodatek Power Query przesyła żądania danych w natywnej instrukcji SQL do źródła danych. W tym przypadku reprezentuje wszystkie rekordy i pola (kolumny) z fact_Sale tabeli. W tym scenariuszu ten przypadek jest niepożądany, ponieważ tabela zawiera miliony wierszy, a zainteresowanie jest tylko w ciągu ostatnich 10.
  • Table.LastN: Gdy dodatek Power Query odbiera wszystkie rekordy z fact_Sale tabeli, używa aparatu Power Query do filtrowania tabeli i przechowywania tylko ostatnich 10 wierszy.
  • Table.SelectColumns: Dodatek Power Query użyje danych wyjściowych węzła Table.LastN i zastosuje nową transformację o nazwie Table.SelectColumns, która wybiera określone kolumny, które chcesz zachować z tabeli.

Aby przeprowadzić ocenę, to zapytanie musiało pobrać wszystkie wiersze i pola z fact_Sale tabeli. To zapytanie trwało średnio 6 minut i 1 sekundę do przetworzenia w standardowym wystąpieniu przepływów danych usługi Power BI (co odpowiada ocenie i ładowaniu danych do przepływów danych).

Przykład składania zapytań częściowych

Po nawiązaniu połączenia z bazą danych i przejściu fact_Sale do tabeli zacznij od wybrania kolumn, które chcesz zachować z tabeli. Wybierz pozycję Wybierz przekształcenie kolumn znalezione w grupie Zarządzaj kolumnami na karcie Narzędzia główne. Ta transformacja pomaga jawnie wybrać kolumny, które chcesz zachować z tabeli i usunąć resztę.

Wybranie przekształcenia Wybierz kolumny dla przykładu częściowego składania zapytań.

W oknie dialogowym Wybieranie kolumn wybierz Sale Keykolumny , , Invoice Date KeyCustomer Key, Descriptioni Quantity , a następnie wybierz przycisk OK.

Wybieranie kolumn Klucz sprzedaży, Klucz klienta, Klucz faktury, Opis i Ilość dla przykładu częściowego składania zapytań.

Teraz utworzysz logikę, która posortuje tabelę tak, aby miała ostatnią sprzedaż w dolnej części tabeli. Wybierz kolumnę Sale Key , która jest kluczem podstawowym i sekwencją przyrostowej lub indeksem tabeli. Posortuj tabelę przy użyciu tylko tego pola w kolejności rosnącej z menu kontekstowego dla kolumny.

Posortuj pole Klucz sprzedaży tabeli w kolejności rosnącej przy użyciu menu kontekstowego pola automatycznego filtrowania.

Następnie wybierz menu kontekstowe tabeli i wybierz przekształcenie Zachowaj dolne wiersze .

Wybierz opcję Zachowaj dolne wiersze w menu kontekstowym tabeli.

W obszarze Zachowaj dolne wiersze wprowadź wartość 10, a następnie wybierz przycisk OK.

Zachowaj okno dialogowe dolnych wierszy z wartością 10 wprowadzoną jako wartość wejściową, aby zachować tylko dziesięć ostatnich wierszy tabeli.

Poniższy przykładowy kod to pełny skrypt języka M dla utworzonego zapytania:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Ascending}}),
  #"Kept bottom rows" = Table.LastN(#"Sorted rows", 10)
in
  #"Kept bottom rows"

Przykład składania zapytań częściowych: opis oceny zapytania

Podczas sprawdzania zastosowanych kroków widać, że wskaźniki składania zapytań pokazują, że ostatnia dodana transformacja , jest oznaczona jako krok, Kept bottom rowsktóry zostanie oceniony poza źródłem danych lub, innymi słowy, przez aparat Power Query.

Okienko Zastosowane kroki dla zapytania ze wskaźnikami składania zapytań pokazującymi, że dolne wiersze przechowywane są oznaczone jako krok, który zostanie oceniony poza źródłem danych.

Możesz kliknąć prawym przyciskiem myszy ostatni krok zapytania, jeden o nazwie Kept bottom rowsi wybrać opcję Plan zapytania, aby lepiej zrozumieć, jak można ocenić zapytanie.

Plan zapytania przedstawiający wiele węzłów, w których węzeł Table.LastN, pokazany wewnątrz prostokąta, jest węzłem, który będzie oceniany przez aparat Power Query, a nie przez źródło danych.

Każde pole na poprzedniej ilustracji jest nazywane węzłem. Węzeł reprezentuje każdy proces, który musi nastąpić (od lewej do prawej) w celu oceny zapytania. Niektóre z tych węzłów można ocenić w źródle danych, podczas gdy inne, takie jak węzeł dla Table.LastN, reprezentowane przez krok Przechowywane dolne wiersze , są oceniane przy użyciu aparatu Power Query.

Aby wyświetlić dokładne żądanie wysłane do źródła danych, wybierz pozycję Wyświetl szczegóły w węźle Value.NativeQuery .

Instrukcja SQL wewnątrz value.NativeQuery reprezentująca żądanie dla wszystkich rekordów, z tylko żądanymi polami z tabeli fact_Sales w bazie danych posortowane w kolejności rosnącej według pola Klucz sprzedaży.

To żądanie jest w języku natywnym źródła danych. W tym przypadku język ten to SQL, a ta instrukcja reprezentuje żądanie dla wszystkich wierszy, z tylko żądanymi polami z fact_Sale tabeli uporządkowanej Sale Key według pola.

Skonsultowanie się z tym żądaniem źródła danych może pomóc lepiej zrozumieć historię, którą próbuje przekazać pełny plan zapytania. Kolejność węzłów to sekwencyjny proces, który rozpoczyna się od żądania danych ze źródła danych:

  • Sql.Database: Połączenie do bazy danych i wysyła żądania metadanych, aby zrozumieć jego możliwości.
  • Value.NativeQuery: reprezentuje żądanie wygenerowane przez dodatek Power Query w celu spełnienia zapytania. Dodatek Power Query przesyła żądania danych w natywnej instrukcji SQL do źródła danych. W tym przypadku reprezentuje wszystkie rekordy, z tylko żądanymi polami z fact_Sale tabeli w bazie danych posortowane w kolejności rosnącej Sales Key według pola.
  • Table.LastN: Gdy dodatek Power Query odbiera wszystkie rekordy z fact_Sale tabeli, używa aparatu Power Query do filtrowania tabeli i przechowywania tylko ostatnich 10 wierszy.

W celu oceny to zapytanie musiało pobrać wszystkie wiersze i tylko wymagane pola z fact_Sale tabeli. Przetwarzanie danych w standardowym wystąpieniu przepływów danych usługi Power BI trwa średnio 3 minuty i 4 sekundy (co odpowiada ocenie i ładowaniu danych do przepływów danych).

Przykład składania pełnych zapytań

Po nawiązaniu połączenia z bazą danych i przejściu fact_Sale do tabeli zacznij od wybrania kolumn, które chcesz zachować z tabeli. Wybierz pozycję Wybierz przekształcenie kolumn znalezione w grupie Zarządzaj kolumnami na karcie Narzędzia główne. Ta transformacja pomaga jawnie wybrać kolumny, które chcesz zachować z tabeli i usunąć resztę.

Wybranie przekształcenia Wybierz kolumny dla pełnego przykładu składania zapytań.

W obszarze Wybierz kolumny wybierz Sale Keykolumny , , Customer KeyInvoice Date Key, Descriptioni Quantity , a następnie wybierz przycisk OK.

Wybieranie kolumn Klucz sprzedaży, Klucz klienta, Klucz faktury, Opis i Ilość dla pełnego przykładu składania zapytań.

Teraz utworzysz logikę, która posortuje tabelę tak, aby miała ostatnią sprzedaż w górnej części tabeli. Wybierz kolumnę Sale Key , która jest kluczem podstawowym i sekwencją przyrostowej lub indeksem tabeli. Posortuj tabelę tylko przy użyciu tego pola w kolejności malejącej z menu kontekstowego dla kolumny.

Posortuj pole Klucz sprzedaży tabeli w kolejności malejącej przy użyciu menu kontekstowego.

Następnie wybierz menu kontekstowe tabeli i wybierz przekształcenie Zachowaj pierwsze wiersze .

Zachowaj opcję pierwszych wierszy w menu kontekstowym tabeli.

W obszarze Zachowaj pierwsze wiersze wprowadź wartość 10, a następnie wybierz przycisk OK.

Zachowaj okno dialogowe pierwszych wierszy z wartością dziesięć wprowadzoną jako wartość wejściową, aby zachować tylko dziesięć pierwszych wierszy tabeli.

Poniższy przykładowy kod to pełny skrypt języka M dla utworzonego zapytania:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Descending}}),
  #"Kept top rows" = Table.FirstN(#"Sorted rows", 10)
in
  #"Kept top rows"

Przykład składania pełnych zapytań: opis oceny zapytania

Podczas sprawdzania zastosowanych kroków zobaczysz, że wskaźniki składania zapytań pokazują, że dodane przekształcenia, Wybieranie kolumn, Posortowane wiersze i Przechowywane pierwsze wiersze są oznaczone jako kroki, które zostaną ocenione w źródle danych.

Wszystkie kroki zapytania mają ikonę, która pokazuje, że można je składać z powrotem do źródła danych.

Możesz kliknąć prawym przyciskiem myszy ostatni krok zapytania, jeden o nazwie Przechowywane pierwsze wiersze i wybrać opcję odczytującą plan zapytania.

Instrukcja SQL znaleziona wewnątrz value.NativeQuery, która reprezentuje żądanie dziesięciu pierwszych rekordów tabeli fact_Sale posortowanych przy użyciu pola Klucz sprzedaży i tylko z polami Klucz sprzedaży, Klucz klienta, Klucz faktury, Opis i Ilość.

To żądanie jest w języku natywnym źródła danych. W tym przypadku język ten to SQL, a ta instrukcja reprezentuje żądanie dla wszystkich wierszy i pól z fact_Sale tabeli.

Skonsultowanie się z tym zapytaniem źródła danych może pomóc lepiej zrozumieć historię, którą próbuje przekazać pełny plan zapytania:

  • Sql.Database: Połączenie do bazy danych i wysyła żądania metadanych, aby zrozumieć jego możliwości.
  • Value.NativeQuery: reprezentuje żądanie wygenerowane przez dodatek Power Query w celu spełnienia zapytania. Dodatek Power Query przesyła żądania danych w natywnej instrukcji SQL do źródła danych. W tym przypadku reprezentuje żądanie tylko 10 pierwszych rekordów fact_Sale tabeli, z tylko wymaganymi polami po posortowaniu w kolejności malejącej przy użyciu Sale Key pola.

Uwaga

Chociaż nie ma klauzuli , która może służyć do wybierania dolnych wierszy tabeli w języku T-SQL, istnieje klauzula TOP, która pobiera pierwsze wiersze tabeli.

Na potrzeby oceny to zapytanie pobiera tylko 10 wierszy z tylko polami żądanymi z fact_Sale tabeli. To zapytanie trwało średnio 31 sekund, aby było przetwarzane w standardowym wystąpieniu przepływów danych usługi Power BI (co odpowiada ocenie i ładowaniu danych do przepływów danych).

Porównanie wydajności

Aby lepiej zrozumieć wpływ składania zapytań w tych zapytaniach, możesz odświeżyć zapytania, zarejestrować czas potrzebny do pełnego odświeżenia poszczególnych zapytań i porównać je. Dla uproszczenia w tym artykule przedstawiono średni czas odświeżania przechwycony przy użyciu mechanika odświeżania przepływów danych usługi Power BI podczas nawiązywania połączenia z dedykowanym środowiskiem usługi Azure Synapse Analytics za pomocą dw2000c jako poziomu usługi.

Czas odświeżania dla każdego zapytania był następujący:

Przykład Etykieta Czas w sekundach
Brak składania zapytań Brak 361
Częściowe składanie zapytań Częściowe 184
Składanie pełnych zapytań Pełny 31

Wykres porównujący czas odświeżania zapytania bez składania z 361 sekundami, częściowe składanie zapytań z 184 sekundami oraz w pełni złożone zapytanie z 31 sekundami.

Często zdarza się, że zapytanie, które w pełni składa się z powrotem do źródła danych, przewyższa podobne zapytania, które nie całkowicie składają się z powrotem do źródła danych. Może być wiele powodów, dla których tak jest. Przyczyny te wahają się od złożoności przekształceń, które wykonuje zapytanie, po optymalizacje zapytań zaimplementowane w źródle danych, takie jak indeksy i dedykowane obliczenia oraz zasoby sieciowe. Mimo to istnieją dwa kluczowe procesy, których składanie zapytań próbuje użyć, co minimalizuje wpływ na oba te procesy w dodatku Power Query:

  • Dane przesyłane
  • Przekształcenia wykonywane przez aparat Power Query

W poniższych sekcjach opisano wpływ tych dwóch procesów we wcześniej wymienionych zapytaniach.

Dane przesyłane

Po wykonaniu zapytania próbuje pobrać dane ze źródła danych jako jeden z pierwszych kroków. Jakie dane są pobierane ze źródła danych, są definiowane przez mechanizm składania zapytań. Ten mechanizm identyfikuje kroki zapytania, które można odciążyć do źródła danych.

W poniższej tabeli wymieniono liczbę wierszy żądanych z fact_Sale tabeli bazy danych. Tabela zawiera również krótki opis instrukcji SQL wysyłanej do żądania takich danych ze źródła danych.

Przykład Etykieta Żądane wiersze opis
Brak składania zapytań Brak 3644356 Żądanie wszystkich pól i wszystkich rekordów z fact_Sale tabeli
Częściowe składanie zapytań Częściowe 3644356 Żądanie wszystkich rekordów, ale tylko wymagane pola z fact_Sale tabeli po posortowane według Sale Key pola
Składanie pełnych zapytań Pełny 10 Żądanie tylko wymaganych pól i 10 pierwszych rekordów fact_Sale tabeli po posortowaniu w kolejności malejącej według Sale Key pola

Wykres z ilością wierszy zebranych z bazy danych bez składania zapytań, składania częściowych zapytań i składania pełnych zapytań.

Podczas żądania danych ze źródła danych źródło danych musi obliczyć wyniki żądania, a następnie wysłać dane do osoby żądającej. Chociaż już wspomniano o zasobach obliczeniowych, zasoby sieciowe przenoszenia danych ze źródła danych do dodatku Power Query, a następnie mają możliwość efektywnego odbierania danych przez dodatek Power Query i przygotowania ich do przekształceń, które będą wykonywane lokalnie, mogą zająć trochę czasu w zależności od rozmiaru danych.

W przypadku prezentowanych przykładów dodatek Power Query musiał zażądać ponad 3,6 miliona wierszy ze źródła danych, aby nie składać zapytań i częściowych przykładów składania zapytań. W przypadku pełnego przykładu składania zapytań zażądano tylko 10 wierszy. W żądanych polach przykład składania zapytań nie zażądał wszystkich dostępnych pól z tabeli. Zarówno częściowe składanie zapytań, jak i pełne składanie zapytań przykłady przesłały tylko żądanie dotyczące dokładnie wymaganych pól.

Uwaga

Zalecamy zaimplementowanie rozwiązań odświeżania przyrostowego, które wykorzystują składanie zapytań dla zapytań lub tabel z dużą ilością danych. Różne integracje produktów dodatku Power Query implementują limity czasu w celu zakończenia długotrwałych zapytań. Niektóre źródła danych implementują również limity czasu w długotrwałych sesjach, próbując wykonywać kosztowne zapytania na swoich serwerach. Więcej informacji: Używanie odświeżania przyrostowego z przepływami danych i odświeżaniem przyrostowym dla modeli semantycznych

Przekształcenia wykonywane przez aparat Power Query

W tym artykule pokazano, jak można użyć planu zapytania, aby lepiej zrozumieć, jak można ocenić zapytanie. Wewnątrz planu zapytania można zobaczyć dokładne węzły operacji przekształcania, które będą wykonywane przez aparat Power Query.

W poniższej tabeli przedstawiono węzły z planów zapytań poprzednich zapytań, które zostałyby ocenione przez aparat Power Query.

Przykład Etykieta Węzły przekształcania aparatu Power Query
Brak składania zapytań Brak Table.LastN, Table.SelectColumns
Częściowe składanie zapytań Częściowe Table.LastN
Składanie pełnych zapytań Pełny

Wykres z całkowitymi przekształceniami uruchamianymi przez aparat Power Query bez składania zapytań, składania częściowych zapytań i składania pełnych zapytań.

W przykładach przedstawionych w tym artykule pełny przykład składania zapytań nie wymaga żadnych przekształceń w a aparatu Power Query, ponieważ wymagana tabela wyjściowa pochodzi bezpośrednio ze źródła danych. Z kolei pozostałe dwa zapytania wymagały wykonania pewnych obliczeń w aucie Power Query. Ze względu na ilość danych, które muszą być przetwarzane przez te dwa zapytania, proces dla tych przykładów zajmuje więcej czasu niż pełny przykład składania zapytań.

Przekształcenia można pogrupować w następujące kategorie:

Typ operatora opis
Zdalnie Operatory, które są węzłami źródła danych. Ocena tych operatorów odbywa się poza programem Power Query.
Przesyłanie strumieniowe Operatory są operatorami przekazywania. Na przykład Table.SelectRows przy użyciu prostego filtru zwykle można filtrować wyniki w miarę ich przekazywania przez operator i nie trzeba zbierać wszystkich wierszy przed przeniesieniem danych. Table.SelectColumns i Table.ReorderColumns są innymi przykładami tego rodzaju operatorów.
Pełne skanowanie Operatory, które muszą zebrać wszystkie wiersze, zanim dane będą mogły przejść do następnego operatora w łańcuchu. Na przykład aby posortować dane, dodatek Power Query musi zebrać wszystkie dane. Inne przykłady operatorów pełnego skanowania to Table.Group, Table.NestedJoini Table.Pivot.

Napiwek

Chociaż nie każda transformacja jest taka sama z punktu widzenia wydajności, w większości przypadków mniejsza liczba przekształceń jest zwykle lepsza.

Zagadnienia i sugestie

  • Postępuj zgodnie z najlepszymi rozwiązaniami podczas tworzenia nowego zapytania, jak opisano w artykule Najlepsze rozwiązania w dodatku Power Query.
  • Użyj wskaźników składania zapytań, aby sprawdzić, które kroki uniemożliwiają składanie zapytania. Zmień kolejność, jeśli jest to konieczne, aby zwiększyć składanie.
  • Użyj planu zapytania, aby określić, które przekształcenia są wykonywane w aucie Power Query dla określonego kroku. Rozważ zmodyfikowanie istniejącego zapytania przez ponowne rozmieszczenie kroków. Następnie ponownie sprawdź plan zapytania ostatniego kroku zapytania i sprawdź, czy plan zapytania wygląda lepiej niż poprzedni. Na przykład nowy plan zapytania ma mniej węzłów niż poprzedni, a większość węzłów to węzły "Przesyłanie strumieniowe", a nie "pełne skanowanie". W przypadku źródeł danych, które obsługują składanie, wszystkie węzły w planie zapytania inne niż Value.NativeQuery i węzły dostępu do źródła danych reprezentują przekształcenia, które nie składały się.
  • Jeśli jest dostępna, możesz użyć opcji Wyświetl zapytanie natywne (lub Wyświetl zapytanie źródła danych), aby upewnić się, że zapytanie można składać z powrotem do źródła danych. Jeśli ta opcja jest wyłączona dla danego kroku i używasz źródła, które zwykle ją włącza, utworzono krok, który zatrzymuje składanie zapytań. Jeśli używasz źródła, które nie obsługuje tej opcji, możesz polegać na wskaźnikach składania zapytań i planie zapytania.
  • Użyj narzędzi diagnostycznych zapytań, aby lepiej zrozumieć żądania wysyłane do źródła danych, gdy funkcje składania zapytań są dostępne dla łącznika.
  • Podczas łączenia danych pochodzących z użycia wielu łączników dodatek Power Query próbuje wypchnąć jak najwięcej pracy do obu źródeł danych, jednocześnie przestrzegając poziomów prywatności zdefiniowanych dla każdego źródła danych.
  • Przeczytaj artykuł na temat poziomów prywatności, aby chronić zapytania przed uruchamianiem przed błędem zapory prywatności danych.
  • Użyj innych narzędzi, aby sprawdzić składanie zapytań z perspektywy żądania odbieranego przez źródło danych. Na podstawie przykładu w tym artykule możesz użyć profilera programu Microsoft SQL Server, aby sprawdzić żądania wysyłane przez dodatek Power Query i odebrane przez program Microsoft SQL Server.
  • Jeśli dodasz nowy krok do w pełni złożonego zapytania, a nowy krok również składa się, dodatek Power Query może wysłać nowe żądanie do źródła danych zamiast używać buforowanej wersji poprzedniego wyniku. W praktyce ten proces może spowodować pozornie proste operacje na niewielkiej ilości danych, które trwają dłużej, niż oczekiwano. To dłuższe odświeżanie jest spowodowane ponownym zapytaniem dodatku Power Query w źródle danych, a nie pracą nad lokalną kopią danych.