Abfragefaltungsbeispiele
Dieser Artikel enthält einige Beispielszenarien für jede der drei möglichen Ergebnisse für die Abfragefaltung. Es enthält auch einige Vorschläge, wie Sie den Abfragefalzmechanismus optimal aus dem Abfragefaltmechanismus herausholen können, und die Auswirkung, die sie in Ihren Abfragen haben kann.
Szenario
Stellen Sie sich ein Szenario vor, in dem Sie mithilfe der Datenbank "Wide World Importers" für Azure Synapse Analytics SQL-Datenbank eine Abfrage in Power Query erstellen, die eine Verbindung mit der fact_Sale Tabelle herstellt und die letzten 10 Verkäufe mit nur den folgenden Feldern abruft:
- Verkaufsschlüssel
- Kundenschlüssel
- Rechnungsdatumsschlüssel
- BESCHREIBUNG
- Menge
Hinweis
Zu Demonstrationszwecken verwendet dieser Artikel die Datenbank, die im Lernprogramm zum Laden der Datenbank der Wide World Importers in Azure Synapse Analytics beschrieben wird. Der Hauptunterschied in diesem Artikel ist die Tabelle, die fact_Sale nur Daten für das Jahr 2000 enthält, mit insgesamt 3.644.356 Zeilen.
Obwohl die Ergebnisse möglicherweise nicht genau mit den Ergebnissen übereinstimmen, die Sie erhalten, indem Sie das Lernprogramm aus der dokumentation Azure Synapse Analytics folgen, besteht das Ziel dieses Artikels darin, die Kernkonzepte und Auswirkungen zu präsentieren, die die Abfragefaltung in Ihren Abfragen haben kann.

In diesem Artikel werden drei Möglichkeiten vorgestellt, um die gleiche Ausgabe mit unterschiedlichen Abfragefaltebenen zu erzielen:
- Keine Abfragefaltung
- Partielle Abfragefaltung
- Vollständige Abfragefaltung
Kein Abfragefaltbeispiel
Wichtig
Abfragen, die ausschließlich auf unstrukturierte Datenquellen basieren oder kein Berechnungsmodul haben, z. B. CSV- oder Excel-Dateien, verfügen nicht über Abfragefaltfunktionen. Dies bedeutet, dass Power Query alle erforderlichen Datentransformationen mithilfe des Power Query-Moduls auswertet.
Nachdem Sie eine Verbindung mit Ihrer Datenbank hergestellt und zur fact_Sale Tabelle navigiert haben, wählen Sie die Transformation der unteren Zeilen in der Gruppe "Zeilen reduzieren " der Registerkarte " Start " aus.

Nachdem Sie diese Transformation ausgewählt haben, wird ein neues Dialogfeld angezeigt. In diesem neuen Dialogfeld können Sie die Anzahl der Zeilen eingeben, die Sie beibehalten möchten. Geben Sie für diesen Fall den Wert 10 ein, und wählen Sie dann "OK" aus.

Tipp
In diesem Fall führt die Ausführung dieses Vorgangs zum Ergebnis der letzten zehn Verkäufe. In den meisten Szenarien wird empfohlen, eine explizitere Logik bereitzustellen, die definiert, welche Zeilen zuletzt durch Anwenden eines Sortiervorgangs auf der Tabelle betrachtet werden.
Wählen Sie als Nächstes die Transformation " Spalten auswählen" in der Gruppe "Spalten verwalten " der Registerkarte " Start " aus. Anschließend können Sie die Spalten auswählen, die Sie aus der Tabelle behalten möchten, und den Rest entfernen.

Wählen Sie schließlich im Dialogfeld "Spalten auswählen" das Sale KeyDialogfeld DescriptionQuantityCustomer KeyInvoice Date Key"Spalten auswählen" aus, und wählen Sie dann "OK" aus.

Das folgende Codebeispiel ist das vollständige M-Skript für die von Ihnen erstellte Abfrage:
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""
Keine Abfragefaltung: Grundlegendes zur Abfrageauswertung
Unter "Angewendete Schritte im Power Query-Editor" werden Sie feststellen, dass die Abfragefaltindikatoren für die untersten Zeilen beibehalten und Spalten auswählen als Schritte gekennzeichnet sind, die außerhalb der Datenquelle ausgewertet werden, oder anders ausgedrückt durch das Power Query-Modul.

Sie können mit der rechten Maustaste auf den letzten Schritt Ihrer Abfrage, den namen " Spalten auswählen" klicken und die Option auswählen, die den Ansichtsabfrageplan liest. Das Ziel des Abfrageplans besteht darin, Ihnen eine detaillierte Ansicht der Ausführung Ihrer Abfrage bereitzustellen. Weitere Informationen zu diesem Feature finden Sie im Abfrageplan.

Jedes Feld im vorherigen Bild wird als Knoten bezeichnet. Ein Knoten stellt die Vorgangsaufschlüsselung dar, um diese Abfrage zu erfüllen. Knoten, die Datenquellen darstellen, z. B. SQL Server im obigen Beispiel und der Value.NativeQuery Knoten, stellen dar, welcher Teil der Abfrage in die Datenquelle geladen wird. Die restlichen Knoten, in diesem Fall Table.LastN und Table.SelectColumns hervorgehoben im Rechteck im vorherigen Bild, werden vom Power Query-Modul ausgewertet. Diese beiden Knoten stellen die beiden Transformationen dar, die Sie hinzugefügt haben, beibehaltene untere Zeilen und Spalten auswählen. Der Rest der Knoten stellt Vorgänge dar, die auf Datenquellenebene auftreten.
Um die genaue Anforderung anzuzeigen, die an Ihre Datenquelle gesendet wird, wählen Sie " Details anzeigen " im Value.NativeQuery Knoten aus.

Diese Datenquellenanforderung befindet sich in der muttersprachen Sprache Ihrer Datenquelle. In diesem Fall ist diese Sprache SQL und diese Anweisung stellt eine Anforderung für alle Zeilen und Felder aus der fact_Sale Tabelle dar.
Die Beratung dieser Datenquellenanfrage kann Ihnen helfen, den Artikel besser zu verstehen, den der Abfrageplan vermittelt:
Sql.Database: Dieser Knoten stellt den Datenquellenzugriff dar. Stellt eine Verbindung mit der Datenbank bereit und sendet Metadatenanforderungen, um seine Funktionen zu verstehen.Value.NativeQuery: Stellt die Anforderung dar, die von Power Query generiert wurde, um die Abfrage zu erfüllen. Power Query sendet die Datenanforderungen in einer nativen SQL-Anweisung an die Datenquelle. In diesem Fall stellt das alle Datensätze und Felder (Spalten) aus derfact_SaleTabelle dar. Für dieses Szenario ist dieser Fall unerwünschter Fall, da die Tabelle Millionen von Zeilen enthält und das Interesse nur in den letzten 10 liegt.Table.LastN: Sobald Power Query alle Datensätze aus derfact_SaleTabelle empfängt, verwendet es das Power Query-Modul, um die Tabelle zu filtern und nur die letzten 10 Zeilen beizubehalten.Table.SelectColumns: Power Query verwendet die Ausgabe desTable.LastNKnotens und wendet eine neue TransformationTable.SelectColumnsan, die die spezifischen Spalten auswählt, die Sie von einer Tabelle beibehalten möchten.
Für die Auswertung musste diese Abfrage alle Zeilen und Felder aus der fact_Sale Tabelle herunterladen. Diese Abfrage dauerte durchschnittlich 6 Minuten und 1 Sekunde, um in einer Standardinstanz von Power BI-Datenflüssen verarbeitet zu werden (was die Auswertung und das Laden von Daten in Datenflüsse berücksichtigt).
Beispiel für partielle Abfragefaltung
Nachdem Sie eine Verbindung mit der Datenbank hergestellt und zur fact_Sale Tabelle navigiert haben, wählen Sie zunächst die Spalten aus, die Sie von der Tabelle beibehalten möchten. Wählen Sie die Transformation " Spalten auswählen " in der Gruppe "Spalten verwalten" auf der Registerkarte " Start " aus. Mit dieser Transformation können Sie die Spalten explizit auswählen, die Sie von der Tabelle beibehalten möchten, und den Rest entfernen.

Wählen Sie im Dialogfeld "Spalten auswählen" das Sale KeyCustomer KeyDescriptionInvoice Date KeyQuantity Dialogfeld "Spalten auswählen" aus, und wählen Sie dann "OK" aus.

Sie erstellen jetzt Logik, die die Tabelle sortiert, um den letzten Umsatz am unteren Rand der Tabelle zu haben. Wählen Sie die Sale Key Spalte aus, wobei es sich um den Primärschlüssel und die inkrementelle Sequenz oder den Index der Tabelle handelt. Sortieren Sie die Tabelle nur mithilfe dieses Felds in aufsteigender Reihenfolge aus dem Kontextmenü für die Spalte.

Wählen Sie als Nächstes das Kontextmenü der Tabelle aus, und wählen Sie die Transformation der unteren Zeilen beibehalten aus.

Geben Sie in den unteren Zeilen den Wert 10 ein, und wählen Sie dann "OK" aus.

Das folgende Codebeispiel ist das vollständige M-Skript für die von Ihnen erstellte Abfrage:
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"
Partielles Abfragefaltungsbeispiel: Grundlegendes zur Abfrageauswertung
Wenn Sie den angewendeten Schrittebereich überprüfen, stellen Sie fest, dass die Abfragefalzindikatoren zeigen, dass die letzte hinzugefügte Transformation als Schritt gekennzeichnet ist, Kept bottom rowsder außerhalb der Datenquelle ausgewertet wird oder mit anderen Worten vom Power Query-Modul.

Sie können mit der rechten Maustaste auf den letzten Schritt Ihrer Abfrage, den benannten Kept bottom rowsSchritt klicken und die Option " Abfrageplan " auswählen, um besser zu verstehen, wie Ihre Abfrage ausgewertet werden kann.

Jedes Feld im vorherigen Bild wird als Knoten bezeichnet. Ein Knoten stellt jeden Prozess dar, der (von links nach rechts) erfolgen muss, damit Ihre Abfrage ausgewertet werden kann. Einige dieser Knoten können in Ihrer Datenquelle ausgewertet werden, während andere, z. B. der Knoten für Table.LastN, dargestellt durch den Schritt "Beibehaltene untere Zeilen", mithilfe des Power Query-Moduls ausgewertet werden.
Um die genaue Anforderung anzuzeigen, die an Ihre Datenquelle gesendet wird, wählen Sie " Details anzeigen " im Value.NativeQuery Knoten aus.

Diese Anforderung befindet sich in der Muttersprache Ihrer Datenquelle. Für diesen Fall ist diese Sprache SQL und diese Anweisung stellt eine Anforderung für alle Zeilen dar, wobei nur die angeforderten Felder aus der fact_Sale Tabelle sortiert nach dem Sale Key Feld angeordnet sind.
Die Beratung dieser Datenquellenanforderung kann Ihnen helfen, die Geschichte, die der vollständige Abfrageplan vermittelt, besser zu verstehen. Die Reihenfolge der Knoten ist ein sequenzieller Prozess, der beginnt, indem die Daten aus Ihrer Datenquelle angefordert werden:
Sql.Database: Stellt eine Verbindung mit der Datenbank bereit und sendet Metadatenanforderungen, um seine Funktionen zu verstehen.Value.NativeQuery: Stellt die Anforderung dar, die von Power Query generiert wurde, um die Abfrage zu erfüllen. Power Query sendet die Datenanforderungen in einer nativen SQL-Anweisung an die Datenquelle. Für diesen Fall stellt das alle Datensätze dar, wobei nur die angeforderten Felder aus der Tabelle in derfact_SaleDatenbank nach aufsteigender Reihenfolge nach demSales KeyFeld sortiert sind.Table.LastN: Sobald Power Query alle Datensätze aus derfact_SaleTabelle empfängt, verwendet es das Power Query-Modul, um die Tabelle zu filtern und nur die letzten 10 Zeilen beizubehalten.
Für die Auswertung musste diese Abfrage alle Zeilen und nur die erforderlichen Felder aus der fact_Sale Tabelle herunterladen. Es dauerte durchschnittlich 3 Minuten und 4 Sekunden, um in einer Standardinstanz von Power BI-Datenflüssen verarbeitet zu werden (was die Auswertung und das Laden von Daten in Datenflüsse berücksichtigt).
Beispiel für vollständige Abfragefaltung
Nachdem Sie eine Verbindung mit der Datenbank hergestellt und zur fact_Sale Tabelle navigiert haben, wählen Sie zunächst die Spalten aus, die Sie von der Tabelle beibehalten möchten. Wählen Sie die Transformation " Spalten auswählen " in der Gruppe "Spalten verwalten" auf der Registerkarte " Start " aus. Mit dieser Transformation können Sie die Spalten explizit auswählen, die Sie von der Tabelle beibehalten möchten, und den Rest entfernen.

Wählen Sie in "Spalten auswählen" die Invoice Date KeyDescriptionCustomer KeySale KeySpalten , und Quantity Spalten aus, und wählen Sie dann "OK" aus.

Sie erstellen jetzt Logik, die die Tabelle sortiert, um den letzten Umsatz oben in der Tabelle zu haben. Wählen Sie die Sale Key Spalte aus, wobei es sich um den Primärschlüssel und die inkrementelle Sequenz oder den Index der Tabelle handelt. Sortieren Sie die Tabelle nur mithilfe dieses Felds in absteigender Reihenfolge aus dem Kontextmenü für die Spalte.

Wählen Sie als Nächstes das Kontextmenü der Tabelle aus, und wählen Sie die Transformation der oberen Zeilen aus.

Geben Sie in den oberen Zeilen den Wert 10 ein, und wählen Sie dann "OK" aus.

Das folgende Codebeispiel ist das vollständige M-Skript für die von Ihnen erstellte Abfrage:
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"
Vollständiges Abfragefaltungsbeispiel: Grundlegendes zur Abfrageauswertung
Beim Überprüfen des angewendeten Schrittebereichs werden Sie feststellen, dass die Abfragefalzindikatoren zeigen, dass die von Ihnen hinzugefügten Transformationen, Die Spalten auswählen, sortierte Zeilen und die obersten Zeilen beibehalten werden, als Schritte gekennzeichnet werden, die an der Datenquelle ausgewertet werden.

Sie können mit der rechten Maustaste auf den letzten Schritt Ihrer Abfrage, die mit dem Namen "Beibehaltene obere Zeilen" klicken und die Option auswählen, die den Abfrageplan liest.

Diese Anforderung befindet sich in der Muttersprache Ihrer Datenquelle. In diesem Fall ist diese Sprache SQL und diese Anweisung stellt eine Anforderung für alle Zeilen und Felder aus der fact_Sale Tabelle dar.
Durch die Beratung dieser Datenquellenabfrage können Sie die Geschichte besser verstehen, die der vollständige Abfrageplan vermittelt:
Sql.Database: Stellt eine Verbindung mit der Datenbank bereit und sendet Metadatenanforderungen, um seine Funktionen zu verstehen.Value.NativeQuery: Stellt die Anforderung dar, die von Power Query generiert wurde, um die Abfrage zu erfüllen. Power Query sendet die Datenanforderungen in einer nativen SQL-Anweisung an die Datenquelle. Für diesen Fall stellt das eine Anforderung nur für die obersten 10 Datensätze derfact_SaleTabelle dar, wobei nur die erforderlichen Felder nach der Sortierung in absteigender Reihenfolge mithilfe desSale KeyFelds angegeben wurden.
Hinweis
Es gibt zwar keine Klausel, die verwendet werden kann, um die unteren Zeilen einer Tabelle in der T-SQL-Sprache auszuwählen, es gibt jedoch eine TOP-Klausel, die die oberen Zeilen einer Tabelle abruft.
Für die Auswertung lädt diese Abfrage nur 10 Zeilen mit nur den Feldern herunter, die Sie aus der fact_Sale Tabelle angefordert haben. Diese Abfrage hat einen Durchschnitt von 31 Sekunden benötigt, um in einer Standardinstanz von Power BI-Datenflüssen verarbeitet zu werden (was die Auswertung und das Laden von Daten in Datenflüsse berücksichtigt).
Leistungsvergleich
Um die Auswirkungen auf die Abfragefaltung in diesen Abfragen besser zu verstehen, können Sie Ihre Abfragen aktualisieren, die Zeit aufzeichnen, die benötigt wird, um jede Abfrage vollständig zu aktualisieren und sie zu vergleichen. Aus Gründen der Einfachheit bietet dieser Artikel die durchschnittliche Aktualisierungszeitdauer, die mithilfe der Power BI-Datenflüsseaktualisierungsmechanik erfasst wird, während eine Verbindung mit einer dedizierten Azure Synapse Analytics-Umgebung mit DW2000c als Dienstebene hergestellt wird.
Die Aktualisierungszeit für jede Abfrage lautete wie folgt:
| Beispiel | Bezeichnung | Zeit in Sekunden |
|---|---|---|
| Keine Abfragefaltung | Keine | 361 |
| Partielle Abfragefaltung | Teilweise | 184 |
| Vollständige Abfragefaltung | Vollständig | 31 |

Es ist häufig der Fall, dass eine Abfrage, die vollständig in die Datenquelle zurückgefaltet wird, ähnliche Abfragen ausgibt, die nicht vollständig zurück zur Datenquelle gefaltet werden. Es könnte viele Gründe geben, warum dies der Fall ist. Diese Gründe reichen von der Komplexität der Von Ihrer Abfrage ausgeführten Transformationen bis hin zu den Abfrageoptimierungen, die in Ihrer Datenquelle implementiert wurden, z. B. Indizes und dedizierte Computing- und Netzwerkressourcen. Dennoch gibt es zwei spezifische Schlüsselprozesse, mit denen die Abfragefaltung versucht, die Auswirkungen zu minimieren, die beide Prozesse mit Power Query haben:
- Daten während der Übertragung
- Transformationen, die vom Power Query Modul ausgeführt werden
In den folgenden Abschnitten werden die Auswirkungen erläutert, die diese beiden Prozesse in den zuvor erwähnten Abfragen haben.
Daten während der Übertragung
Wenn eine Abfrage ausgeführt wird, versucht sie, die Daten aus der Datenquelle als einen der ersten Schritte abzurufen. Welche Daten aus der Datenquelle abgerufen werden, wird durch den Abfragefalzmechanismus definiert. Dieser Mechanismus identifiziert die Schritte aus der Abfrage, die in die Datenquelle geladen werden kann.
In der folgenden Tabelle sind die Anzahl der Zeilen aufgeführt, die aus der fact_Sale Tabelle der Datenbank angefordert wurden. Die Tabelle enthält auch eine kurze Beschreibung der SQL-Anweisung, die an diese Daten aus der Datenquelle gesendet wird.
| Beispiel | Bezeichnung | Angeforderte Zeilen | Beschreibung |
|---|---|---|---|
| Keine Abfragefaltung | Keine | 3644356 | Anforderung für alle Felder und alle Datensätze aus der fact_Sale Tabelle |
| Partielle Abfragefaltung | Teilweise | 3644356 | Anforderung für alle Datensätze, aber nur erforderliche Felder aus der fact_Sale Tabelle, nachdem sie nach dem Sale Key Feld sortiert wurde |
| Vollständige Abfragefaltung | Vollständig | 10 | Anforderung nur für die erforderlichen Felder und die TOP 10-Datensätze der fact_Sale Tabelle nach der Sortierung in absteigender Reihenfolge nach dem Sale Key Feld |

Beim Anfordern von Daten aus einer Datenquelle muss die Datenquelle die Ergebnisse für die Anforderung berechnen und dann die Daten an den Anforderer senden. Während die Rechenressourcen bereits erwähnt wurden, können die Netzwerkressourcen, die Daten aus der Datenquelle in Power Query verschieben, und dann Power Query die Daten effektiv empfangen und für die Transformationen vorbereiten, die lokal auftreten, je nach Größe der Daten einige Zeit dauern können.
Für die vorgestellten Beispiele musste Power Query mehr als 3,6 Millionen Zeilen aus der Datenquelle anfordern, um keine Abfragefaltungs- und Teilabfragefaltungsbeispiele zu erhalten. Für das vollständige Abfragefaltbeispiel wurde nur 10 Zeilen angefordert. Für die angeforderten Felder hat das Beispiel für die Abfragefaltung alle verfügbaren Felder aus der Tabelle angefordert. Sowohl die partielle Abfragefaltung als auch die vollständigen Abfragefaltungsbeispiele haben nur eine Anforderung für genau die felder übermittelt, die sie benötigt haben.
Achtung
Es wird empfohlen, inkrementelle Aktualisierungslösungen zu implementieren, die die Abfragefaltung für Abfragen oder Entitäten mit großen Datenmengen nutzen. Verschiedene Produktintegrationen von Power Query implementieren Timeouts, um lange ausgeführte Abfragen zu beenden. Einige Datenquellen implementieren auch Timeouts für lange Ausgeführte Sitzungen, um teure Abfragen für ihre Server auszuführen. Weitere Informationen: Verwenden der inkrementellen Aktualisierung mit Datenflüssen und inkrementellerAktualisierung für Datasets
Transformationen, die vom Power Query Modul ausgeführt werden
In diesem Artikel wird gezeigt, wie Sie den Abfrageplan verwenden können, um besser zu verstehen, wie Ihre Abfrage ausgewertet werden kann. Innerhalb des Abfrageplans können Sie die genauen Knoten der Transformationsvorgänge sehen, die vom Power Query Modul ausgeführt werden.
In der folgenden Tabelle werden die Knoten aus den Abfrageplänen der vorherigen Abfragen angezeigt, die vom Power Query-Modul ausgewertet wurden.
| Beispiel | Bezeichnung | Power Query Modultransformationsknoten |
|---|---|---|
| Keine Abfragefaltung | Keine | Table.LastN, Table.SelectColumns |
| Partielle Abfragefaltung | Teilweise | Table.LastN |
| Vollständige Abfragefaltung | Vollständig | — |

Für die beispiele, die in diesem Artikel dargestellt werden, erfordert das vollständige Abfragefaltungsbeispiel keine Transformationen innerhalb des Power Query-Moduls, da die erforderliche Ausgabetabelle direkt aus der Datenquelle stammt. Im Gegensatz dazu benötigten die anderen beiden Abfragen eine Berechnung an der Power Query Engine. Aufgrund der Datenmenge, die von diesen beiden Abfragen verarbeitet werden muss, dauert der Prozess für diese Beispiele mehr Zeit als das vollständige Abfragefaltbeispiel.
Transformationen können in die folgenden Kategorien gruppiert werden:
| Operatortyp | Beschreibung |
|---|---|
| Remote | Operatoren, die Datenquellenknoten sind. Die Auswertung dieser Operatoren tritt außerhalb von Power Query auf. |
| Streaming | Operatoren sind Pass-Through-Operatoren. Table.SelectRows Beispielsweise kann mit einem einfachen Filter die Ergebnisse normalerweise beim Durchlaufen des Operators gefiltert werden, und es muss nicht alle Zeilen gesammelt werden, bevor die Daten verschoben werden. Table.SelectColumns und Table.ReorderColumns sind weitere Beispiele für diese Art von Operatoren. |
| Vollständige Überprüfung | Operatoren, die alle Zeilen sammeln müssen, bevor die Daten zum nächsten Operator in der Kette wechseln können. Um beispielsweise Daten zu sortieren, muss Power Query alle Daten sammeln. Weitere Beispiele für vollständige Scanoperatoren sind Table.Group, Table.NestedJoinund Table.Pivot. |
Tipp
Obwohl nicht jede Transformation von einem Leistungsstand aus gleich ist, ist es in den meisten Fällen besser, weniger Transformationen zu haben.
Überlegungen und Vorschläge
- Befolgen Sie die bewährten Methoden beim Erstellen einer neuen Abfrage, wie in bewährten Methoden in Power Query angegeben.
- Verwenden Sie die Abfragefaltungsindikatoren , um zu überprüfen, welche Schritte ihre Abfrage vor dem Falten verhindern. Ordnen Sie sie bei Bedarf neu an, um die Faltung zu erhöhen.
- Verwenden Sie den Abfrageplan, um zu bestimmen, welche Transformationen im Power Query-Modul für einen bestimmten Schritt ausgeführt werden. Erwägen Sie, Ihre vorhandene Abfrage zu ändern, indem Sie Ihre Schritte neu anordnen. Überprüfen Sie dann den Abfrageplan des letzten Schritts der Abfrage erneut, und überprüfen Sie, ob der Abfrageplan besser aussieht als die vorherige. Beispielsweise verfügt der neue Abfrageplan über weniger Knoten als die vorherige, und die meisten Knoten sind "Streaming"-Knoten und nicht "vollständiger Scan". Für Datenquellen, die das Falten unterstützen, stellen alle Knoten im Abfrageplan außer
Value.NativeQueryund Datenquellenzugriffsknoten Transformationen dar, die nicht gefaltet wurden. - Wenn verfügbar, können Sie die Option "Native Abfrage anzeigen" (oder " Datenquellenabfrage anzeigen") verwenden, um sicherzustellen, dass Ihre Abfrage wieder in die Datenquelle gefaltet werden kann. Wenn diese Option für Ihren Schritt deaktiviert ist und Sie eine Quelle verwenden, die es normalerweise aktiviert, haben Sie einen Schritt erstellt, der die Abfragefaltung beendet. Wenn Sie eine Quelle verwenden, die diese Option nicht unterstützt, können Sie sich auf die Abfragefalzindikatoren und den Abfrageplan verlassen.
- Verwenden Sie die Abfragediagnosetools, um die Anforderungen, die an Ihre Datenquelle gesendet werden, besser zu verstehen, wenn Abfragefaltfunktionen für den Connector verfügbar sind.
- Beim Kombinieren von Datenquellen, die aus der Verwendung mehrerer Connectors stammen, versucht Power Query, möglichst viel Arbeit an beide Datenquellen zu übertragen und gleichzeitig die für jede Datenquelle definierten Datenschutzstufen einzuhalten.
- Lesen Sie den Artikel über Datenschutzebenen , um Ihre Abfragen vor einem Fehler der Datenschutzfirewall zu schützen.
- Verwenden Sie andere Tools, um die Abfragefaltung anhand der Perspektive zu überprüfen, die von der Datenquelle empfangen wird. Basierend auf dem Beispiel in diesem Artikel können Sie die Microsoft-SQL Server Profiler verwenden, um die Anforderungen zu überprüfen, die von Power Query gesendet und von der Microsoft-SQL Server empfangen werden.
- Wenn Sie einer vollständig gefalteten Abfrage einen neuen Schritt hinzufügen und der neue Schritt ebenfalls gefaltet wird, kann Power Query eine neue Anforderung an die Datenquelle senden, anstatt eine zwischengespeicherte Version des vorherigen Ergebnisses zu verwenden. In der Praxis kann dieser Prozess zu scheinbar einfachen Vorgängen in einer kleinen Menge von Daten führen, die länger dauern, bis sie in der Vorschau aktualisiert werden als erwartet. Diese längere Aktualisierung ist auf Power Query erneutes Abfragen der Datenquelle zurückzuführen, anstatt eine lokale Kopie der Daten zu deaktivieren.