Udostępnij przez


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ływu, jaki może on mieć na twoje zapytania.

Scenariusz

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

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

Uwaga / Notatka

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, postępując zgodnie z samouczkiem z dokumentacji Azure Synapse Analytics, celem tego artykułu jest przedstawienie podstawowych pojęć i wpływu, jaki składanie zapytań może mieć na zapytania.

Zrzut ekranu przedstawiający przykładową tabelę danych wyjściowych pochodzącą z tabeli fact_Sale bazy danych Azure Synapse Analytics Wide World Importers.

W tym artykule przedstawiono trzy sposoby osiągnięcia tego samego wyniku z różnymi poziomami zwijania zapytań.

  • Brak składania zapytań
  • Częściowe składanie zapytań
  • Pełne zwijanie zapytań

Brak przykładu składania zapytań

Ważne

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

Po nawiązaniu połączenia z bazą danych i przejściu do tabeli fact_Sale, wybierz przekształcenie Zachowaj dolne wiersze znajdujące się w grupie Redukcja wierszy na karcie Strona główna.

Zrzut ekranu przedstawiający przekształcenie Zachowaj dolne wiersze znajdujące się w grupie Zmniejsz wiersze na karcie Narzędzia główne.

Po wybraniu tego przekształcenia 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.

Zrzut ekranu przedstawiający okienko Zachowaj dolne wiersze, w którym należy wprowadzić wartość 10 w oknie dialogowym Zachowaj dolne wiersze.

Wskazówka

W tym przypadku wykonanie tej operacji daje wynik 10 ostatnich 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ę.

Zrzut ekranu przedstawiający wstążkę Strona główna, na której wybierasz przekształcenie 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.

Zrzut ekranu przedstawiający okienko Wybieranie kolumn, w którym wybierasz kolumny

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 zwróć uwagę, że wskaźniki składania zapytań dla zachowanych dolnych wierszy i Wybierz kolumny są oznaczone jako kroki oceniane 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 Zachowane dolne wiersze oraz Usunięcie innych kolumn.

Możesz kliknąć prawym przyciskiem myszy ostatni krok swojego zapytania, ten o nazwie Wybierz kolumny, i wybrać opcję o nazwie 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ń.

Zrzut ekranu przedstawiający plan zapytania dla utworzonego zapytania z wieloma węzłami, z których dwa znajdują się w prostokątze reprezentującym węzły oceniane przez aparat Power Query.

Każde pole na poprzedniej ilustracji jest nazywane węzłem. Węzeł reprezentuje rozkład operacji w celu spełnienia tego zapytania. Węzły reprezentujące źródła danych, takie jak program SQL Server w poprzednim przykładzie i Value.NativeQuery 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ą przekształcenia, które dodałeś: Zachowane 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 .

Zrzut ekranu przedstawiający instrukcję SQL znajdującą się wewnątrz tabeli

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. Nawiązuje połączenie z bazą 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 dotyczy tylko ostatnich 10.
  • Table.LastN: Gdy Power Query odbierze wszystkie rekordy z tabeli fact_Sale, używa silnika Power Query do przefiltrowania tabeli i pozostawienia tylko ostatnich 10 wierszy.
  • Table.SelectColumns: Dodatek Power Query używa danych wyjściowych węzła Table.LastN i stosuje 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 zajmowało średnio 6 minut i 1 sekundę na przetworzenie w standardowym wystąpieniu przepływów danych usługi Power BI (co obejmuje ocenę i ładowanie danych do przepływów danych).

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

Po nawiązaniu połączenia z bazą danych i przejściu do fact_Sale tabeli zacznij od wybrania kolumn, które chcesz zachować z tabeli. Wybierz transformację Wybierz kolumny znajdującą się w grupie Zarządzaj kolumnami na karcie Strona główna. Transformacja ta umożliwia wyraźny wybór kolumn, które chcesz zachować w tabeli, i usunięcie pozostałych.

Zrzut ekranu przedstawiający wstążkę Narzędzia główne, na której wybrano przekształcenie Wybierz kolumny dla przykładu składania zapytań częściowych.

W oknie dialogowym Wybieranie kolumn wybierz kolumny Sale Key, Customer Key, Invoice Date Key, Description i Quantity, a następnie wybierz OK.

Zrzut ekranu przedstawiający okienko Wybieranie kolumn, w którym wybrano kolumny

Teraz tworzysz logikę, której celem jest sortowanie tabeli, aby ostatnia sprzedaż była na dole 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.

Zrzut ekranu przedstawiający menu kontekstowe, w którym sortujesz pole

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

Zrzut ekranu przedstawiający menu kontekstowe tabeli, w którym wybrano opcję Zachowaj dolne wiersze.

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

Zrzut ekranu przedstawiający okno dialogowe Zachowaj dolne wiersze z wartością 10 wprowadzoną jako wartość wejściową, aby zachować tylko 10 dolnych 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: Zrozumienie oceny zapytania

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

Zrzut ekranu przedstawiający okienko kroków zastosowanych z wskaźnikami składania zapytań pokazującymi, że zachowane dolne wiersze są oznaczone jako krok, który jest oceniany 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.

Zrzut ekranu przedstawiający plan zapytania przedstawiający wiele węzłów, w których węzeł

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 .

Zrzut ekranu przedstawiający plan zapytania, w którym można wybrać pozycję Wyświetl szczegóły w poleceniu

To żądanie jest w języku natywnym źródła danych. W tym przypadku tym językiem jest SQL, a ta instrukcja reprezentuje żądanie dotyczące wszystkich wierszy, zawierające jedynie żądane pola z tabeli fact_Sale, uporządkowanej według pola Sale Key.

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: łączy się z bazą 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, gdzie reprezentowane są wszystkie rekordy, tylko z żądanymi polami z tabeli fact_Sale w bazie danych posortowane według pola Sales Key w kolejności rosnącej.
  • Table.LastN: Gdy Power Query odbierze wszystkie rekordy z tabeli fact_Sale, używa silnika Power Query do przefiltrowania tabeli i pozostawienia 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 przejdź do tabeli fact_Sale, a następnie zacznij od wybrania kolumn, które chcesz zachować z tej tabeli. Wybierz transformację Wybierz kolumny znajdującą się w grupie Zarządzaj kolumnami na karcie Strona główna. Transformacja ta umożliwia wyraźny wybór kolumn, które chcesz zachować w tabeli, i usunięcie pozostałych.

Zrzut ekranu przedstawiający przekształcenie wyboru kolumn do użycia w pełnym przykładzie składania zapytań.

W Wybierz kolumny wybierz kolumny Sale Key, Customer Key, Invoice Date Key, Description i Quantity, a następnie wybierz OK.

Zrzut ekranu przedstawiający kolumny

Teraz utworzysz logikę, która sortuje tabelę tak, aby ostatnia sprzedaż była na górze 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.

Zrzut ekranu przedstawiający menu kontekstowe pola

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 wpisz wartość 10, a następnie wybierz OK.

Zrzut ekranu przedstawiający okno dialogowe Zachowaj pierwsze wiersze z wartością 10 wprowadzoną jako wartość wejściową, aby zachować tylko 10 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, zwróć uwagę, że wskaźniki składania zapytań pokazują, że dodane przekształcenia, Wybieranie kolumn, Sortowanie wierszy i Zachowane górne wiersze, są oznaczone jako kroki oceniane 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.

Zrzut ekranu przedstawiający plan zapytania przedstawiający zawartość elementu Value.NativeQuery.

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: łączy się z bazą 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 chodzi o żądanie dotyczące jedynie 10 pierwszych rekordów tabeli fact_Sale, zawierające tylko wymagane pola, po posortowaniu w kolejności malejącej według pola Sale Key.

Uwaga / Notatka

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ć efekt składania zapytań w tych zapytaniach, możesz odświeżyć zapytania, zarejestrować czas potrzebny do pełnego odświeżenia każdego zapytania i porównać je. Dla uproszczenia w tym artykule przedstawiono średni czas odświeżania zmierzony przy użyciu mechanizmu odświeżania przepływów danych Power BI podczas nawiązywania połączenia z dedykowanym środowiskiem Azure Synapse Analytics, przy użyciu DW2000c jako poziomu usługi.

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

Example Etykieta Czas w sekundach
Brak składania zapytań Żaden 361
Częściowe składanie zapytań Częściowy 184
Pełne zwijanie 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óre składanie zapytań stara się wykorzystać, co minimalizuje efekt, jaki te procesy mają w Power Query.

  • Dane w tranzycie
  • Przekształcenia wykonywane przez aparat Power Query

W poniższych sekcjach wyjaśniono efekt tych dwóch procesów w poprzednich zapytaniach.

Dane w tranzycie

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

Example Etykieta Żądane wiersze Description
Brak składania zapytań Żaden 3644356 Żądanie wszystkich pól i wszystkich rekordów z fact_Sale tabeli
Częściowe składanie zapytań Częściowy 3644356 Żądanie wszystkich rekordów, ale tylko wymaganych pól z tabeli fact_Sale po posortowaniu według pola Sale Key
Pełne zwijanie 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 liczbą wierszy zebranych z bazy danych dla braku składania zapytań, częściowego składania zapytań i pełnego składania zapytań.

Gdy żądasz danych ze źródła danych, źródło danych musi obliczyć wyniki żądania, a następnie wysłać dane do osoby żądającej. Podczas gdy zasoby obliczeniowe zostały już wspomniane, zasoby sieciowe związane z przenoszeniem danych ze źródła do Power Query, a następnie to, czy Power Query może efektywnie odbierać dane i przygotowywać je do lokalnych przekształceń, może zająć trochę czasu, w zależności od rozmiaru danych.

W przypadku pokazanych przykładów, dodatek Power Query musiał zażądać ponad 3,6 miliona wierszy ze źródła danych dla przykładów bez składania zapytań oraz przykładów z częściowym składaniem zapytań. W przypadku pełnego przykładu składania zapytań zażądano tylko 10 wierszy. W żądanych polach przykład składania zapytań bez składania zażądał wszystkich dostępnych pól z tabeli. Zarówno przy częściowym składaniu zapytań, jak i przy pełnym składaniu zapytań, przykłady przesłały żądanie wyłącznie o dokładnie wymagane pola.

Ostrzeżenie

Zalecamy zaimplementowanie rozwiązań odświeżania przyrostowego, które używają składania 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 wykonywanych przez silnik Power Query.

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

Example Etykieta Węzły przekształcania mechanizmu Power Query
Brak składania zapytań Żaden Table.LastN, Table.SelectColumns
Częściowe składanie zapytań Częściowy Table.LastN
Pełne zwijanie zapytań Pełny

Wykres przedstawiający łączną liczbę przekształceń wykonanych przez silnik Power Query dla scenariuszy bez składania zapytania, częściowego składania zapytania oraz pełnego składania zapytania.

W przykładach przedstawionych w tym artykule pełne składanie zapytań nie wymaga żadnych przekształceń w aparacie Power Query, ponieważ wymagana tabela wyjściowa pochodzi bezpośrednio ze źródła danych. Z kolei pozostałe dwa zapytania wymagały wykonania obliczeń w silniku 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 Description
Zdalny 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, gdy przechodzą 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.

Wskazówka

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 zwijania zapytań, aby sprawdzić, które kroki uniemożliwiają zwijanie 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 silniku Power Query dla określonego kroku. Rozważ zmodyfikowanie istniejącego zapytania, zmieniając kolejność kroków. Następnie sprawdź ponownie plan ostatniego kroku zapytania i zobacz, czy 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 węzły „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 twojego kroku i używasz źródła, które zwykle ją włącza, utworzyłeś krok zatrzymujący przetwarzanie zapytań. Jeśli używasz źródła, które nie obsługuje tej funkcji, możesz polegać na znacznikach składania zapytań i planie zapytania.
  • Aby lepiej zrozumieć żądania wysyłane do źródła danych, kiedy dla łącznika dostępne są funkcje składania zapytań, użyj narzędzi diagnostycznych zapytań.
  • Po połączeniu danych pochodzących z użycia wielu łączników Power Query próbuje przekazać jak najwięcej operacji do odpowiednich źródeł danych, zachowując zgodność z poziomami prywatności zdefiniowanymi dla każdego źródła danych.
  • Przeczytaj artykuł na temat poziomów prywatności, aby chronić zapytania przed błędami związanymi z zaporą prywatności danych.
  • Użyj innych narzędzi, aby sprawdzić składanie zapytań z perspektywy żądania odebranego 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ż jest składany, 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ć, że pozornie proste operacje na niewielkiej ilości danych będą odświeżane w podglądzie dłużej, niż oczekiwano. To dłuższe odświeżanie jest spowodowane ponownym odpytywaniem źródła danych przez Power Query, zamiast operowaniem na lokalnej kopii danych.