Freigeben über


Indikatoren für Query Folding

Hinweis

Bevor Sie diesen Artikel lesen, empfehlen wir Ihnen, eine Übersicht über die Abfrageauswertung und Abfragefaltung in Power Query zu lesen, um besser zu verstehen, wie die Faltung in Power Query funktioniert.

Mithilfe von Abfragefaltungsindikatoren können Sie die Schritte verstehen, die gefaltet oder nicht gefaltet werden.

Mit Indikatoren für die Abfragefaltung wird es offensichtlich, wenn Sie eine Änderung vornehmen, die die Faltung unterbricht. Dieses Feature hilft Ihnen, Probleme schnell zu beheben, Leistungsprobleme zuerst zu vermeiden und bessere Einblicke in Ihre Abfragen zu erhalten. In den meisten Fällen stoßen Sie auf, dass Stufen entweder zusammenklappen oder nicht. Es gibt jedoch viele Fälle, in denen das Ergebnis nicht so offensichtlich ist, und diese Fälle werden in Schrittdiagnoseindikatoren (Dynamisch, Undurchsichtig und Unbekannt) behandelt.

Hinweis

Die Funktion "Abfragefaltungsindikatoren" ist nur für Power Query Online verfügbar.

Interpretieren der Abfragefaltungsdiagnose

Wenn Sie die Abfragefaltungsanzeige neben einem Schritt untersuchen, ist es am wichtigsten zu verstehen, dass der Diagnosezustand nicht sequenziell ist. Mit anderen Worten beschreibt der Indikator für diesen Schritt, ob die Abfrage insgesamt, bis zu diesem Punkt, zusammengefasst wird oder nicht. Wenn Sie über einen Indikator verfügen, der anzeigt, dass die Abfrage nicht gefaltet wird, gefolgt von einem Indikator, der zeigt, dass sie gefaltet wird, bedeutet dies, dass Ihre Abfrage bis zu diesem Punkt gefaltet wird.

Diese Interpretation funktioniert auch bei einer einfachen Abfrage für eine SQL-Quelle. Stellen Sie beispielsweise mithilfe der AdventureWorks-Beispieldatenbank eine Verbindung mit der Tabelle "Production.Product " her, und laden Sie Daten. Wenn Sie dieses Beispiel über den Power Query-Navigator laden, erhalten Sie die folgende Abfrage:

let
  Source = Sql.Database("ServerName", "AdventureWorks"),
  Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
  Navigation

Wenn Sie untersuchen, wie dieser Code in Abfragefaltungsindikatoren angezeigt wird, beachten Sie, dass der erste Schritt nicht eindeutig ist. Der zweite Schritt führt jedoch eine Faltung durch, was bedeutet, dass die Abfrage bis zu diesem Punkt gefaltet wird.

Screenshot der Schritte

In diesem Beispiel können die ersten Schritte nicht bestätigt werden, ob sie sich falten (ist unklar), aber der letzte Schritt, der generiert wird, wenn Sie die Daten anfänglich laden, faltet sich. Wie die ersten Schritte (Quelle und manchmal andere Navigationsschritte ) behandelt werden, hängt vom Connector ab. Bei SQL wird der Schritt beispielsweise als Katalogtabellenwert behandelt, der nicht gefaltet wird. Sobald Sie jedoch Daten für diesen Verbinder auswählen, wird sie gefaltet.

Umgekehrt kann diese Angabe auch bedeuten, dass Ihre Abfrage bis zu einem Punkt gefaltet wird und das Falten dann stoppt. Anders als in dem Fall, in dem Sie einen Faltindikator für den Schritt haben, der anzeigt, dass alles gefaltet wird, wenn Sie einen nicht faltbaren Indikator haben, bedeutet dies nicht, dass alles nicht gefaltet wird. Stattdessen bedeutet dies, dass "nicht alles" zusammengefaltet wird. Im Allgemeinen wird alles bis zur letzten Faltanzeige gefaltet, wobei mehr Vorgänge danach stattfinden.

Wenn Sie das vorherige Beispiel ändern, können Sie eine Transformation geben, die nie gefaltet wird – jedes Word großgeschrieben.

let
  Source = Sql.Database("ServerName", "AdventureWorks"),
  Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
  #"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
  #"Capitalized each word"

In den Abfragefaltungsindikatoren verfügen Sie über dieselben Indikatoren wie zuvor, mit der Ausnahme, dass der letzte Schritt nicht gefaltet wird. Alles bis zu diesem letzten Schritt wird für die Datenquelle ausgeführt, während der letzte Schritt lokal ausgeführt wird.

Screenshot der Schritte

Schrittdiagnoseindikatoren

Abfragefaltungsindikatoren verwenden einen zugrunde liegenden Abfrageplan und erfordern, dass sie Informationen zur Abfrage abrufen kann, um sie zu melden. Derzeit unterstützt der Abfrageplan nur Tabellen, sodass einige Fälle (Listen, Datensätze, Grundtypen) nicht darüber berichten, ob sie gefaltet werden. Ebenso werden Konstantentabellen als undurchsichtig bezeichnet.

Indikator Ikone BESCHREIBUNG
Klapp Die Faltanzeige teilt Ihnen mit, dass die Datenquelle die Abfrage bis zu diesem Schritt auswertet.
Nicht gefaltet Die Nichtfaltungsanzeige teilt Ihnen mit, dass ein Teil der Abfrage bis zu diesem Schritt außerhalb der Datenquelle ausgewertet wird. Sie können sie mit dem letzten Faltindikator vergleichen, falls es einen gibt, um festzustellen, ob Sie Ihre Abfrage neu anordnen können, damit sie effizienter wird.
Kann gefaltet werden Indikatoren, die möglicherweise zusammenklappbar sind, sind ungewöhnlich. Sie bedeuten, dass eine Abfrage "möglicherweise" gefaltet wird. Sie geben entweder an, ob zur Laufzeit gefaltet wird oder nicht, wenn Ergebnisse aus der Abfrage abgerufen werden, und dass der Abfrageplan dynamisch ist. Diese Indikatoren werden wahrscheinlich nur mit ODBC- oder OData-Verbindungen angezeigt.
Opaque- Undurchsichtige Indikatoren weisen Sie darauf hin, dass der resultierende Abfrageplan aus irgendeinem Grund nicht eindeutig ist. Es weist in der Regel darauf hin, dass es eine echte "Konstante"-Tabelle gibt oder dass das Tool für Indikatoren und Abfragepläne diese Transformation oder diesen Connector nicht unterstützt.
Unbekannt Unbekannte Indikatoren stellen ein Fehlen eines Abfrageplans dar, entweder aufgrund eines Fehlers oder beim Versuch, die Abfrageplanauswertung auf etwas anderes als eine Tabelle auszuführen (z. B. einen Datensatz, eine Liste oder eine Primitivität).

Beispielanalyse

Beginnen Sie bei einer Beispielanalyse zunächst mit der Tabelle Production.Product in Adventure Works (SQL). Die anfängliche Last ähnlich dem ersten Beispiel sieht wie die folgende Abbildung aus.

Screenshot der Indikatoren für den ersten Schritt zum Laden der Produkttabelle.

Fügen Sie weitere Schritte hinzu, mit denen diese grüne Linie auf der rechten Seite gefaltet wird. Diese Erweiterung tritt auf, weil dieser Schritt ebenfalls zusammenfällt.

Screenshot, der zeigt, wie das Hinzufügen eines Schritts zum Entfernen einer Spalte zur vorherigen Abfrage die grüne Faltindikatorlinie erweitert.

Wenn Sie einen Schritt hinzufügen, der nicht gefaltet wird, wird ein anderer Indikator angezeigt. Beispielsweise wird jedes Wort großgeschrieben und niemals verändert. Der Indikator ändert sich und zeigt, dass ab diesem Schritt das Falten aufgehört hat. Wie bereits erwähnt, gelten die vorherigen Schritte weiterhin.

Screenshot, der zeigt, wie das Hinzufügen einer Großschreibung jedes Word-Schritts die Faltung umbricht.

Das Hinzufügen weiterer Schritte, die auf jedem Schritt großgeschrieben werden, führt weiterhin nicht zum Falten.

Screenshot, der zeigt, wie die Faltung nach dem Hinzufügen weiterer Schritte nicht auftritt.

Wenn Sie jedoch die Spalte entfernen, auf die Sie die Großschreibung angewendet haben, damit der optimierte Abfrageplan alle noch einmal gefaltet werden kann, erhalten Sie ein Ergebnis wie die folgende Abbildung. Etwas wie das ist jedoch ungewöhnlich. In dieser Abbildung wird veranschaulicht, wie sie nicht nur die Reihenfolge der Schritte, sondern auch die tatsächlichen Transformationen darstellt, die ebenfalls angewendet werden.

Screenshot, der zeigt, wie das Entfernen der problematischen Spalte das Falten ermöglicht, ohne den Schritt zu entfernen.