Warum wird meine Abfrage mehrfach ausgeführt?
Beim Aktualisieren in Power Query wird hinter den Kulissen viel getan, um Ihnen eine reibungslose Benutzererfahrung zu bieten und Ihre Abfragen effizient und sicher auszuführen. In einigen Fällen kann es jedoch vorkommen, dass Power Query beim Aktualisieren von Daten mehrere Datenquellenanforderungen auslöst. Manchmal sind diese Anfragen normal, aber manchmal können sie auch verhindert werden.
Wenn mehrere Anfragen auftreten
In den folgenden Abschnitten werden einige Fälle beschrieben, in denen Power Query mehrere Anfragen an eine Datenquelle senden kann.
Steckerdesign
Connectors können eine Datenquelle aus verschiedenen Gründen mehrfach aufrufen, z. B. für Metadaten, zum Zwischenspeichern von Ergebnissen, für die Paginierung und so weiter. Dieses Verhalten ist normal und soll auch so funktionieren.
Mehrere Abfragen, die auf eine einzige Datenquelle verweisen
Mehrere Anfragen an dieselbe Datenquelle können auftreten, wenn mehrere Abfragen von dieser Datenquelle abgerufen werden. Diese Anfragen können auch dann erfolgen, wenn nur eine Abfrage auf die Datenquelle verweist. Wenn eine oder mehrere andere Abfragen diese Abfrage referenzieren, wird jede Abfrage – zusammen mit allen Abfragen, von denen sie abhängt – unabhängig bewertet.
In einer Desktop-Umgebung wird eine einzige Aktualisierung aller Tabellen im Datenmodell über einen einzigen gemeinsamen Cache durchgeführt. Durch Caching kann die Wahrscheinlichkeit von Mehrfachanfragen an dieselbe Datenquelle verringert werden, da eine Abfrage davon profitieren kann, dass dieselbe Anfrage bereits für eine andere Abfrage ausgeführt und zwischengespeichert wurde. Selbst hier können Sie jedoch mehrere Anforderungen erhalten. Mögliche Gründe:
- Die Datenquelle ist nicht zwischengespeichert (z. B. lokale CSV-Dateien).
- Die Anforderung an die Datenquelle unterscheidet sich von einer Anforderung, die aufgrund von Downstream-Vorgängen bereits zwischengespeichert wurde (wodurch die Faltung verändert werden kann).
- Der Cache ist zu klein (was relativ unwahrscheinlich ist).
- Die Abfragen werden ungefähr zur gleichen Zeit ausgeführt.
In einer Cloudumgebung wird jede Abfrage mithilfe eines eigenen separaten Caches aktualisiert. Daher kann eine Abfrage nicht davon profitieren, wenn eine Anforderung bereits für eine andere Abfrage zwischengespeichert wurde.
Folding
Manchmal kann die Faltschicht von Power Query mehrere Anfragen an eine Datenquelle generieren, die auf den nachgelagerten Operationen basieren. In solchen Fällen können Sie mehrere Anfragen vermeiden, indem Sie Table.Buffer
verwenden. Weitere Informationen: Puffern Sie Ihren Tisch
Laden in das Power BI Desktop-Modell
In Power BI Desktop aktualisiert Analysis Services (AS) die Daten mithilfe von zwei Auswertungen: eine zum Abrufen des Schemas - wozu AS null Zeilen anfordert - und eine zum Abrufen der Daten. Wenn die Berechnung des Nullzeilenschemas das Abrufen der Daten erfordert, kann es zu doppelten Datenquellenanforderungen kommen.
Analyse des Datenschutzes
Der Datenschutz führt für jede Abfrage eine eigene Bewertung durch, um festzustellen, ob die Abfragen sicher zusammen ausgeführt werden können. Diese Auswertung kann manchmal mehrere Anfragen an eine Datenquelle verursachen. Ein klares Anzeichen dafür, dass eine bestimmte Anfrage aus einer Datenschutzanalyse stammt, ist, dass sie eine „TOP 1000“-Bedingung enthält (obwohl nicht alle Datenquellen eine solche Bedingung unterstützen). Im Allgemeinen würde die Deaktivierung des Datenschutzes - vorausgesetzt, dies ist akzeptabel - die „TOP 1000“ oder andere datenschutzbezogene Anfragen während der Aktualisierung eliminieren. Weitere Informationen: Deaktivieren Sie die Datenschutz-Firewall
Herunterladen von Hintergrunddaten (auch als „Hintergrundanalyse“ bezeichnet)
Ähnlich wie bei den Auswertungen, die für den Datenschutz durchgeführt werden, lädt der Power Query Editor standardmäßig eine Vorschau der ersten 1.000 Zeilen jedes Abfrageschritts herunter. Das Herunterladen dieser Zeilen trägt dazu bei, dass die Datenvorschau angezeigt werden kann, sobald ein Schritt ausgewählt wird, kann aber auch zu doppelten Datenquellenanforderungen führen. Weitere Informationen: Hintergrundanalyse deaktivieren
Verschiedene Hintergrundaufgaben des Power-Query-Editors
Verschiedene Hintergrundaufgaben des Power Query-Editors können auch zusätzliche Datenquellenanfragen auslösen (z. B. Query Folding-Analyse, Spaltenprofilierung, automatische Aktualisierung der 1000-Zeilen-Vorschau, die Power Query nach dem Laden der Ergebnisse in Excel auslöst, usw.).
Mehrere Abfragen isolieren
Sie können die Instanzen mehrerer Abfragen isolieren, indem Sie bestimmte Teile des Abfrageprozesses abschalten, um herauszufinden, woher die doppelten Anfragen kommen. Zum Beispiel, wenn Sie beginnen:
- Im Power Query-Editor
- Wenn die Firewall deaktiviert ist
- Mit deaktivierter Hintergrundanalyse
- Mit column profiling und allen anderen Hintergrundaufgaben deaktiviert
- [Optional] Durchführung einer
Table.Buffer
In diesem Beispiel haben Sie nur eine einzige M-Auswertung, die erfolgt, wenn Sie die Vorschau des Power Query-Editors aktualisieren. Wenn die doppelten Anfragen an diesem Punkt auftreten, dann sind sie irgendwie in der Art und Weise, wie die Abfrage verfasst wird, begründet. Wenn nicht, und wenn Sie die zuvor beschriebenen Einstellungen einzeln aktivieren, können Sie beobachten, ab wann die doppelten Anfragen auftreten.
In den folgenden Abschnitten werden diese Schritte ausführlicher beschrieben.
Power Query Editor einrichten
Sie brauchen Ihre Abfrage nicht neu zu verbinden oder neu zu erstellen. Öffnen Sie einfach die Abfrage, die Sie testen möchten, im Power Query Editor. Sie können die Abfrage im Editor duplizieren, wenn Sie die bestehende Abfrage nicht verändern wollen.
Deaktivieren Sie die Datenschutz-Firewall
Der nächste Schritt besteht darin, die Datenschutz-Firewall zu deaktivieren. In diesem Schritt wird davon ausgegangen, dass Sie sich keine Sorgen über Datenlecks zwischen den Quellen machen. Daher können Sie die Datenschutz-Firewall deaktivieren, indem Sie die Einstellungen Datenschutzstufen immer ignorieren verwenden, die unter Option Schnell kombinieren in Excel beschrieben werden, oder indem Sie die Einstellung Datenschutzstufen ignorieren und möglicherweise die Leistung verbessern verwenden, die unter Power BI Desktop Datenschutzstufen in Power BI Desktop beschrieben wird.
Machen Sie diesen Schritt unbedingt rückgängig, bevor Sie mit der normalen Prüfung fortfahren.
Hintergrundanalyse deaktivieren
Der nächste Schritt besteht darin, die Hintergrundanalyse zu deaktivieren. Die Hintergrundanalyse wird durch die Einstellung Download der Datenvorschau im Hintergrund zulassen gesteuert, die unter Hintergrundaktualisierung von Power Query deaktivieren für Power BI beschrieben wird. Sie können diese Option auch in Excel deaktivieren.
Puffern Sie Ihren Tisch
Optional können Sie auch Table.Buffer
verwenden, um zu erzwingen, dass alle Daten gelesen werden, was das Geschehen während eines Ladevorgangs imitiert. So verwenden Sie Table.Buffer
im Power Query Editor:
Wählen Sie in der Formelleiste des Power Query Editors die Schaltfläche fx, um einen neuen Schritt hinzuzufügen.
Umgeben Sie in der Formelleiste den Namen des vorherigen Schritts mit Table.Buffer(<previous step name goes here>). Wenn der vorherige Schritt zum Beispiel
Source
hieß, wird in der Bearbeitungsleiste= Source
angezeigt. Ändern Sie den Schritt in der Formelleiste so, dass er= Table.Buffer(Source)
lautet.
Weitere Informationen: Tabelle.Puffer
Test ausführen
Um den Test durchzuführen, aktualisieren Sie den Power Query Editor.