Dlaczego moje zapytanie jest uruchamiane wiele razy?

Podczas odświeżania w dodatku Power Query za kulisami istnieje wiele czynności, aby spróbować zapewnić bezproblemowe środowisko użytkownika oraz wydajne i bezpieczne wykonywanie zapytań. Jednak w niektórych przypadkach można zauważyć, że podczas odświeżania danych jest wyzwalanych wiele żądań źródła danych przez dodatek Power Query. Czasami te żądania są normalne, ale innym razem można im zapobiec.

Gdy wystąpi wiele żądań

W poniższych sekcjach opisano kilka wystąpień, gdy dodatek Power Query może wysyłać wiele żądań do źródła danych.

Projekt Połączenie or

Połączenie ory mogą wykonywać wiele wywołań do źródła danych z różnych powodów, w tym metadanych, buforowania wyników, stronicowania itd. To zachowanie jest normalne i jest przeznaczone do pracy w ten sposób.

Wiele zapytań odwołujące się do jednego źródła danych

W przypadku ściągnięcia z tego źródła danych wiele żądań do tego samego źródła danych może wystąpić. Te żądania mogą wystąpić nawet w przypadku, gdy tylko jedno zapytanie odwołuje się do źródła danych. Jeśli to zapytanie odwołuje się do co najmniej jednego innego zapytania, każde zapytanie — wraz ze wszystkimi zależnymi od niego zapytaniami — jest oceniane niezależnie.

W środowisku pulpitu jest uruchamiane pojedyncze odświeżanie wszystkich tabel w modelu danych przy użyciu jednej udostępnionej pamięci podręcznej. Buforowanie może zmniejszyć prawdopodobieństwo wielu żądań do tego samego źródła danych, ponieważ jedno zapytanie może korzystać z tego samego żądania, które zostało już uruchomione i buforowane dla innego zapytania. Mimo to można pobrać wiele żądań, ponieważ źródło danych nie jest buforowane (na przykład lokalne pliki CSV), żądanie do źródła danych różni się od żądania, które zostało już buforowane z powodu operacji podrzędnych (które mogą zmienić składanie), pamięć podręczna jest zbyt mała (co jest stosunkowo mało prawdopodobne) lub dlatego, że zapytania są uruchomione w mniej więcej tym samym czasie.

W środowisku chmury każde zapytanie jest odświeżane przy użyciu własnej oddzielnej pamięci podręcznej, więc zapytanie nie może korzystać z tego samego żądania, które zostało już buforowane dla innego zapytania.

Składane

Czasami warstwa składania dodatku Power Query może generować wiele żądań do źródła danych na podstawie wykonywanych operacji podrzędnych. W takich przypadkach można uniknąć wielu żądań przy użyciu polecenia Table.Buffer. Więcej informacji: Buforuj tabelę

Ładowanie do modelu programu Power BI Desktop

W programie Power BI Desktop usługi Analysis Services (AS) odświeża dane przy użyciu dwóch ocen: jeden do pobrania schematu — co robi AS, prosząc o zero wierszy — i jeden do pobrania danych. Jeśli przetwarzanie schematu wiersza zerowego wymaga pobrania danych, mogą wystąpić zduplikowane żądania źródła danych.

Analiza prywatności danych

Prywatność danych wykonuje własne oceny poszczególnych zapytań, aby określić, czy zapytania są bezpieczne do uruchomienia razem. Ta ocena może czasami powodować wiele żądań do źródła danych. Znak telltale, że dane żądanie pochodzi z analizy prywatności danych jest to, że będzie mieć warunek "TOP 1000" (chociaż nie wszystkie źródła danych obsługują taki warunek). Ogólnie rzecz biorąc, wyłączenie prywatności danych — przy założeniu, że jest to akceptowalne — wyeliminowałoby "TOP 1000" lub inne żądania związane z prywatnością danych podczas odświeżania. Więcej informacji: Wyłączanie zapory prywatności danych

Pobieranie danych w tle (nazywane również "analizą w tle")

Podobnie jak w przypadku ocen wykonywanych pod kątem prywatności danych, edytor Power Query domyślnie pobierze podgląd pierwszych 1000 wierszy każdego kroku zapytania. Pobieranie tych wierszy pomaga upewnić się, że podgląd danych jest gotowy do wyświetlenia natychmiast po wybraniu kroku, ale może również powodować zduplikowane żądania źródła danych. Więcej informacji: Wyłączanie analizy w tle

Różne zadania w tle edytora Power Query

Różne zadania edytora Power Query w tle mogą również wyzwalać dodatkowe żądania źródła danych (na przykład analiza składania zapytań, profilowanie kolumn, automatyczne odświeżanie podglądu 1000 wierszy wyzwalane przez dodatek Power Query po załadowaniu wyników do programu Excel itd.).

Izolowanie wielu zapytań

Możesz odizolować wystąpienia wielu zapytań, wyłączając określone części procesu zapytania, aby odizolować miejsca, z których pochodzą zduplikowane żądania. Jeśli na przykład uruchomisz:

  • W edytorze Power Query
  • Po wyłączeniu zapory
  • Z wyłączoną analizą w tle
  • W przypadku profilowania kolumn i innych zadań w tle wyłączonych
  • [Opcjonalnie] Wykonywanie Table.Buffer

W tym przykładzie będziesz mieć tylko jedną ocenę W języku M, która odbywa się podczas odświeżania wersji zapoznawczej edytora Power Query. Jeśli w tym momencie wystąpią zduplikowane żądania, są one w jakiś sposób związane ze sposobem tworzenia zapytania. Jeśli tak nie jest, a jeśli włączysz powyższe ustawienia jeden po jednym, możesz obserwować, w jakim momencie zaczynają występować zduplikowane żądania.

W poniższych sekcjach opisano te kroki bardziej szczegółowo.

Konfigurowanie edytora Power Query

Nie musisz ponownie łączyć się ani ponownie utworzyć zapytania, po prostu otwórz zapytanie, które chcesz przetestować w edytorze Power Query. Możesz zduplikować zapytanie w edytorze, jeśli nie chcesz bałaganu z istniejącym zapytaniem.

Wyłączanie zapory prywatności danych

Następnym krokiem jest wyłączenie zapory prywatności danych. W tym kroku założono, że nie obawiasz się wycieku danych między źródłami, dlatego wyłączenie zapory prywatności danych można wykonać przy użyciu zawsze ignorowanych ustawień poziomu prywatności opisanych w temacie Ustaw szybkie łączenie w programie Excel lub użycie opcji Ignoruj poziomy prywatności i potencjalnie poprawić ustawienie wydajności opisane w temacie Poziomy prywatności programu Power BI Desktop w programie Power BI Desktop.

Pamiętaj, aby cofnąć ten krok przed wznowieniem normalnego testowania.

Wyłączanie analizy w tle

Następnym krokiem jest wyłączenie analizy w tle. Analiza w tle jest kontrolowana przez ustawienie Zezwalaj na pobieranie danych w wersji zapoznawczej w tle opisanym w artykule Wyłączanie odświeżania w tle dodatku Power Query dla usługi Power BI. Możesz również wyłączyć tę opcję w programie Excel.

Obraz przedstawiający opcje zapytania w programie Excel z wyłączoną analizą w tle.

Buforuj tabelę

Opcjonalnie możesz również użyć Table.Buffer polecenia , aby wymusić odczytywanie wszystkich danych, co imituje to, co dzieje się podczas ładowania. Aby użyć Table.Buffer w edytorze Power Query:

  1. Na pasku formuły edytora Power Query wybierz przycisk fx , aby dodać nowy krok.

    Obraz z zaznaczoną lokalizacją przycisku fx.

  2. Na pasku formuły umieść nazwę poprzedniego kroku za pomocą metody Table.Buffer (<poprzednia nazwa kroku znajduje się tutaj>). Jeśli na przykład poprzedni krok miał nazwę Source, na pasku formuły zostanie wyświetlony = Sourceciąg . Edytuj krok na pasku formuły, aby powiedzieć = Table.Buffer(Source).

Więcej informacji: Table.Buffer

Uruchamianie testu

Aby uruchomić test, wykonaj odświeżanie w edytorze Power Query.

Obraz z zaznaczoną lokalizacją przycisku odświeżania.