Verwenden von DirectQuery in Power BIAbout using DirectQuery in Power BI

Sie können eine Verbindung mit allen möglichen verschiedenen Datenquellen herstellen, wenn Sie Power BI Desktop oder den Power BI-Dienst verwenden, und es gibt unterschiedliche Möglichkeiten, diese Datenverbindungen herzustellen.You can connect to all sorts of different data sources when using Power BI Desktop or the Power BI service, and make those data connections in different ways. Sie können Daten in Power BI importieren, was die gängigste Methode ist, um Daten abzurufen. Alternativ können Sie eine Direktverbindung zu Daten im ursprünglichen Quellrepository herstellen, was als DirectQuery bekannt ist.You can import data to Power BI, which is the most common way to get data, or connect directly to data in the original source repository, which is known as DirectQuery. Dieser Artikel beschreibt DirectQuery-Funktionen:This article describes DirectQuery capabilities:

  • Verschiedene Konnektivitätsoptionen für DirectQueryDifferent connectivity options for DirectQuery
  • Leitfaden für die Situation, in der Sie DirectQuery dem Import vorziehen solltenGuidance for when you should consider using DirectQuery rather than import
  • Nachteile der Verwendung von DirectQueryDrawbacks of using DirectQuery
  • Bewährte Methoden für die Verwendung von DirectQueryBest practices for using DirectQuery

Befolgen Sie bewährte Methoden für die Verwendung von Import und DirectQuery:Follow best practices for using import versus DirectQuery:

  • Importieren Sie Dateien in Power BI, wann immer dies möglich ist.You should import data to Power BI wherever possible. Das Importieren nutzt die leistungsstarke Abfrage-Engine von Power BI, und Sie erhalten eine hoch interaktive und vollständig ausgestattete Erfahrung.Importing takes advantage of the high performance query engine of Power BI, and provides a highly interactive and fully featured experience.
  • Wenn Ihre Ziele nicht durch den Import von Daten erreicht werden können, erwägen Sie, DirectQuery zu verwenden.If your goals can't be met by importing data, consider using DirectQuery. DirectQuery ist womöglich die beste Wahl, wenn sich die Daten z.B. oft ändern und Berichte die neuesten Daten wiedergeben müssen.For example, if the data is changing frequently and reports must reflect the latest data, DirectQuery may be best. Die Verwendung von DirectQuery ist jedoch nur möglich, wenn die zugrunde liegende Datenquelle interaktive Abfragen (weniger als fünf Sekunden für die typische Aggregatabfrage) bereitstellen und die generierte Abfragelast verarbeiten kann.However, using DirectQuery is only feasible when the underlying data source can provide interactive queries, less than 5 seconds for the typical aggregate query, and can handle the query load that will be generated. Darüber hinaus muss die Liste der Einschränkungen für die Verwendung von DirectQuery sorgfältig geprüft werden.Additionally, the list of limitations for the use of DirectQuery should be considered carefully.

Die Reihe der Funktionen, die von Power BI für Import und DirectQuery angeboten wird, wird mit der Zeit weiterentwickelt.The set of capabilities offered by Power BI for import and DirectQuery evolve over time. Änderungen umfassen die Bereitstellung einer erhöhten Flexibilität beim Verwenden importierter Daten, damit der Import in mehr Fällen genutzt werden kann. Es werden zudem einige Nachteile der Verwendung von DirectQuery beseitigt.Changes will include providing more flexibility when using imported data, such that import can be used in more cases and eliminating some of the drawbacks of using DirectQuery. Unabhängig von den Verbesserungen bleibt die Leistung der zugrunde liegenden Datenquelle bei Verwendung von DirectQuery immer ein wichtiger Gesichtspunkt.Regardless of improvements, when using DirectQuery, the performance of the underlying data source always remains a major consideration. Wenn die zugrunde liegende Datenquelle langsam ist, kann DirectQuery für diese Quelle nicht verwendet werden.If that underlying data source is slow, using DirectQuery for that source will remain unfeasible.

Dieser Artikel behandelt DirectQuery mit Power BI und nicht SQL Server Analysis Services.This article covers DirectQuery with Power BI, and not SQL Server Analysis Services. DirectQuery ist auch ein Feature von SQL Server Analysis Services.DirectQuery is also a feature of SQL Server Analysis Services. Viele der in diesem Artikel beschriebenen Details gelten für dieses Feature.Many of the details described in this article apply to that feature. Es gibt jedoch auch wichtige Unterschiede.There are also important differences. Informationen zur Verwendung von DirectQuery mit SQL Server Analysis Services finden Sie unter DirectQuery in SQL Server 2016 Analysis Services.For information about using DirectQuery with SQL Server Analysis Services, see DirectQuery in SQL Server 2016 Analysis Services.

Dieser Artikel konzentriert sich auf den empfohlenen Workflow für DirectQuery, wo der Bericht in Power BI Desktop erstellt wird, es wird aber auch die direkte Verbindung im Power BI-Dienst behandelt.This article focuses on the recommended workflow for DirectQuery, where the report is created in Power BI Desktop, but also covers connecting directly in the Power BI service.

Power BI-KonnektivitätsmodiPower BI connectivity modes

Power BI stellt eine Verbindung mit einer Vielzahl unterschiedlicher Datenquellen her, was Folgendes umfasst:Power BI connects to a large number of varied data sources, encompassing:

  • Online-Dienste (Salesforce, Dynamics 365 und andere)Online services (Salesforce, Dynamics 365, others)
  • Datenbanken (SQL Server, Access, Amazon Redshift, andere)Databases (SQL Server, Access, Amazon Redshift, others)
  • Einfache Dateien (Excel, JSON, andere)Simple files (Excel, JSON, others)
  • Andere Datenquellen (Spark, Websites, Microsoft Exchange, andere)Other data sources (Spark, Web sites, Microsoft Exchange, others)

Für diese Datenquellen können die Daten in Power BI importiert werden.For these sources, it's possible to import the data to Power BI. Es ist auch möglich, eine Verbindung mithilfe von DirectQuery herzustellen.For some, it's also possible to connect using DirectQuery. Eine Übersicht über die Datenquellen, die DirectQuery unterstützen, finden Sie unter Von DirectQuery unterstützte Datenquellen.For a summary of the sources that support DirectQuery, see Data Sources supported by DirectQuery. Viele Quellen werden in Zukunft für DirectQuery aktiviert, wobei man sich hauptsächlich auf Quellen konzentriert, von denen man erwarten kann, dass sie eine gute interaktive Abfrageleistung abliefern.More sources will be DirectQuery enabled in the future, focusing primarily on sources that can be expected to deliver good interactive query performance.

SQL Server Analysis Services ist ein Sonderfall.SQL Server Analysis Services is a special case. Beim Herstellen einer Verbindung mit SQL Server Analysis Services können Sie auswählen, die Daten zu importieren oder eine Liveverbindung zu nutzen.When connecting to SQL Server Analysis Services, you can choose to import the data or use a live connection. Die Verwendung einer Liveverbindung ist ähnlich wie DirectQuery.Using a live connection is similar to DirectQuery. Es werden keine Daten importiert und die zugrunde liegende Datenquelle wird immer abgefragt, um ein visuelles Element zu aktualisieren.No data is imported and the underlying data source is always queried to refresh a visual. Eine Liveverbindung ist in vielerlei Hinsicht anders, daher wird ein anderer Begriff verwendet: Liveverbindung versus DirectQuery.A live connection is different in many other regards, so a different term, live connection versus DirectQuery, is used.

Die drei Optionen zum Herstellen einer Verbindung zu Daten sind: Importieren, DirectQuery und Liveverbindung.These three options for connecting to data: import, DirectQuery, and live connection.

Importieren von VerbindungenImport connections

Wenn Sie zum Importieren die Option Daten abrufen in Power BI Desktop verwenden, um eine Verbindung zu einer Datenquelle wie SQL Server herzustellen, ist das Verhalten dieser Verbindung wie folgt:For import, when using Get Data in Power BI Desktop to connect to a data source like SQL Server, the behavior of that connection is as follows:

  • Während der ersten Erfahrung mit dem Abrufen von Daten definieren die ausgewählten Tabellen jeweils eine Abfrage, die eine Reihe von Daten zurückgeben wird.During the initial Get Data experience, the set of tables selected each define a query that will return a set of data. Diese Abfragen können vor dem Laden der Daten bearbeitet werden, um z. B. Filter anzuwenden, die Daten zu aggregieren oder verschiedene Tabellen zu verknüpfen.Those queries can be edited before loading the data, for example, to apply filters, or aggregate the data, or join different tables.
  • Nach dem Laden werden alle durch diese Abfragen definierten Daten in den Power BI-Cache importiert.Upon load, all of the data defined by those queries will be imported into the Power BI cache.
  • Beim Erstellen eines visuellen Elements in Power BI Desktop werden die importierten Daten abgefragt.Upon building a visual within Power BI Desktop, the imported data will be queried. Der Power BI-Speicher sorgt für eine schnelle Abfrage.The Power BI store ensures the query will be fast. Alle Änderungen am visuellen Element werden sofort wiedergegeben.All changes to the visual are reflected immediately.
  • Änderungen an den zugrunde liegenden Daten werden in keinem visuellen Element wiedergegeben.Any changes to the underlying data aren't reflected in any visuals. Zum erneuten Importieren von Daten ist eine Aktualisierung erforderlich.It's necessary to Refresh to reimport data.
  • Beim Veröffentlichen des Berichts als PBIX-Datei im Power BI-Dienst wird ein Dataset erstellt und in den Power BI-Dienst hochgeladen.Upon publishing the report as a .pbix file to the Power BI service, a dataset is created and uploaded to the Power BI service. Die importierten Daten ist in diesem Dataset enthalten.The imported data is included with that dataset. Es ist dann möglich, eine Aktualisierung der Daten zu planen, um die Daten z. B. jeden Tag neu zu importieren.It's then possible to schedule refresh of that data, for example, to reimport the data every day. Abhängig vom Speicherort der ursprünglichen Datenquelle ist es möglicherweise erforderlich, ein lokales Datengateway zu konfigurieren.Depending upon the location of the original data source, it might be necessary to configure an on-premises data gateway.
  • Beim Öffnen eines vorhandenen Berichts im Power BI-Dienst oder beim Erstellen eines neuen Berichts werden die importierten Daten erneut abgefragt, wodurch die Interaktivität sichergestellt wird.When opening an existing report in the Power BI service, or authoring a new report, the imported data is queried again, ensuring interactivity.
  • Visuelle Elemente oder die gesamten Berichtsseiten können als Dashboardkacheln angeheftet werden.Visuals, or entire report pages, can be pinned as dashboard tiles. Die Kacheln werden automatisch aktualisiert, sobald das zugrunde liegende Dataset aktualisiert wird.The tiles automatically refresh whenever the underlying dataset refreshes.

DirectQuery-VerbindungenDirectQuery connections

Wenn Sie Daten abrufen für DirectQuery in Power BI Desktop verwenden, um eine Verbindung zu einer Datenquelle herzustellen, ist das Verhalten dieser Verbindung wie folgt:For DirectQuery, when using Get Data in Power BI Desktop to connect to a data source, the behavior of that connection is as follows:

  • Während der anfänglichen Erfahrung von „Daten abrufen“ wird die Quelle ausgewählt.During the initial Get Data experience, the source is selected. Für relationale Datenquellen wird ein Satz von Tabellen ausgewählt, und jede Tabelle definiert weiterhin eine Abfrage, die logisch einen Satz von Daten zurückgibt.For relational sources, a set of tables are selected and each still define a query that logically returns a set of data. Für mehrdimensionale Datenquellen wie SAP BW wird nur die Quelle ausgewählt.For multidimensional sources, like SAP BW, only the source is selected.
  • Beim Laden werden jedoch keine Daten in den Power BI-Speicher importiert.However, upon load, no data is imported into the Power BI store. Stattdessen werden nach der Erstellung eines visuellen Elements in Power BI Desktop Abfragen an die zugrunde liegende Datenquelle gesendet, um die erforderlichen Daten abzurufen.Instead, upon building a visual within Power BI Desktop, queries are sent to the underlying data source to retrieve the necessary data. Die Zeit, die für die Aktualisierung des visuellen Elements benötigt wird, hängt von der Leistung der zugrunde liegenden Datenquelle ab.The time taken to refresh the visual depends on the performance of the underlying data source.
  • Alle Änderungen an den zugrunde liegenden Daten werden nicht sofort in jedem vorhandenen visuellen Element wiedergegeben.Any changes to the underlying data aren't immediately reflected in any existing visuals. Eine Aktualisierung ist trotzdem erforderlich.It's still necessary to refresh. Die erforderlichen Abfragen werden für jedes visuelle Element erneut gesendet, und das visuelle Element wird bei Bedarf aktualisiert.The necessary queries are resent for each visual, and the visual is updated as necessary.
  • Nach dem Veröffentlichen des Berichts im Power BI-Dienst ergibt sich erneut ein Dataset im Power BI-Dienst, genau wie beim Import.Upon publishing the report to the Power BI service, it will again result in a dataset in the Power BI service, the same as for import. Allerdings sind in diesem Dataset keine Daten enthalten.However, no data is included with that dataset.
  • Beim Öffnen eines vorhandenen Bericht oder beim Erstellen eines neuen im Power BI-Dienst wird die zugrunde liegende Datenquelle erneut abgefragt, um die benötigten Daten abzurufen.When opening an existing report in the Power BI service, or authoring a new one, the underlying data source is again queried to retrieve the necessary data. Abhängig vom Speicherort der ursprünglichen Datenquelle ist es möglicherweise erforderlich, ein lokales Datengateway zu konfigurieren. Dieses wird ebenso für den Importmodus benötigt, wenn die Daten aktualisiert werden.Depending upon the location of the original data source, it might be necessary to configure an on-premises data gateway, as is needed for import mode if the data is refreshed.
  • Visuelle Elemente oder die gesamten Berichtsseiten können als Dashboardkacheln angeheftet werden.Visuals, or entire report pages, can be pinned as Dashboard tiles. Um sicherzustellen, dass das Öffnen eines Dashboards schnell ausgeführt wird, werden die Kacheln nach einem Zeitplan automatisch aktualisiert, z. B. einmal pro Stunde.To ensure that opening a dashboard is fast, the tiles are automatically refreshed on a schedule, for example, every hour. Die Häufigkeit dieser Aktualisierung kann gesteuert werden, um widerzuspiegeln, wie oft sich die Daten ändern und wie wichtig es ist, die neuesten Daten zu sehen.The frequency of this refresh can be controlled, to reflect how frequently the data is changing, and how important it's to see the latest data. Die Kacheln geben beim Öffnen eines Dashboards die Daten zum Zeitpunkt der letzten Aktualisierung wider und nicht unbedingt die neuesten Änderungen, die an der zugrunde liegenden Quelle vorgenommen wurden.When opening a dashboard, the tiles reflect the data at the time of the last refresh, and not necessarily the latest changes made to the underlying source. Sie können ein geöffnetes Dashboard aktualisieren, um sicherzustellen, dass es aktuell ist.You can refresh an open dashboard to ensure it's current.

LiveverbindungenLive connections

Beim Herstellen einer Verbindung mit SQL Server Analysis Services besteht die Option zum Importieren von Daten aus oder zum Herstellen einer Liveverbindung zum ausgewählten Datenmodell.When connecting to SQL Server Analysis Services, there's an option to either import data from or connect live to, the selected data model. Wenn Sie sich für das Importieren entscheiden, definieren Sie eine Abfrage für die externe SQL Server Analysis Services-Quelle, und die Daten werden als „normal“ importiert.If you use import, you define a query against that external SQL Server Analysis Services source, and the data is imported as normal. Wenn Sie „Live verbinden“ verwenden, gibt es keine definierte Abfrage, und das gesamte externe Modell wird in der Feldliste angezeigt.If you use connect live, there's no query defined, and the entire external model is shown in the field list.

Die im vorherigen Absatz beschriebene Situation gilt auch für das Herstellen einer Verbindung mit den folgenden Quellen, mit dem Unterschied, dass es keine Option zum Importieren der Daten gibt:The situation described in the previous paragraph applies to connecting to the following sources as well, except that there's no option to import the data:

  • Power BI-Datasets, z. B. beim Herstellen einer Verbindung zu einem Power BI-Dataset, das zuvor erstellt und im Dienst veröffentlicht wurde, und um einen neuen Bericht darüber zu erstellen.Power BI datasets, for example, when connecting to a Power BI dataset that has previously been created and published to the service, to author a new report over it.
  • Common Data Services.Common Data Services.

Das Verhalten von Berichten via SQL Server Analysis Services nach der Veröffentlichung im Power BI-Dienst ist den DirectQuery-Berichten in folgenden Punkten ähnlich:The behavior of reports over SQL Server Analysis Services, upon publishing to the Power BI service, is similar to DirectQuery reports in the following ways:

  • Beim Öffnen eines vorhandenen Berichts im Power BI-Dienst oder beim Schreiben eines neuen Berichts wird die zugrunde liegende SQL Server Analysis Services-Quelle abgefragt, wobei möglicherweise ein lokales Datengateway erforderlich ist.When opening an existing report in the Power BI service or authoring a new report, the underlying SQL Server Analysis Services source is queried, possibly requiring an on-premises data gateway.
  • Dashboardkacheln werden automatisch nach einem Zeitplan aktualisiert, z. B. einmal pro Stunde.Dashboard tiles are automatically refreshed on a schedule, such as every hour.

Es gibt jedoch auch wichtige Unterschiede.There are also important differences. Bei Liveverbindungen wird die Identität des Benutzers, der den Bericht öffnet, immer an die zugrunde liegende SQL Server Analysis Services-Quelle übermittelt.For instance, for live connections, the identity of the user opening the report is always passed to the underlying SQL Server Analysis Services source.

Schieben wir nun diese Vergleiche beiseite und konzentrieren uns im restlichen Artikel nur auf DirectQuery.With these comparisons out of the way, let's focus solely on DirectQuery for the rest of this article.

Wann ist DirectQuery sinnvoll?When is DirectQuery useful?

In der folgenden Tabelle werden Szenarien beschrieben, in denen eine Verbindung mit DirectQuery besonders nützlich sein könnte.The following table describes scenarios where connecting with DirectQuery could be especially useful. Sie umfasst Fälle, in denen es als vorteilhaft angesehen würde, die Daten in der ursprünglichen Quelle zu belassen.It includes cases where leaving the data in the original source would be considered beneficial. Die Beschreibung umfasst eine Diskussion darüber, ob das angegebene Szenario in Power BI verfügbar ist.The description includes a discussion about whether the specified scenario is available in Power BI.

EinschränkungLimitation BeschreibungDescription
Daten werden häufig geändert, und es ist eine Berichterstellung erforderlich, die näher an der Echtzeit ist.Data is changing frequently, and near real-time reporting is needed Modelle mit importierten Daten können höchstens einmal pro Stunde aktualisiert werden (häufigere Aktualisierungen sind mit einem Power BI Pro- oder Power BI Premium-Abonnement möglich).Models with imported data can be refreshed at most once per hour (more frequently with Power BI Pro or Power BI Premium subscriptions). Wenn sich die Daten kontinuierlich ändern, und Berichte die neuesten Daten zeigen müssen, ist die Verwendung des Imports mit geplanter Aktualisierung womöglich nicht für Anforderungen dieser Art geeignet.Tf the data is continually changing, and it's necessary for reports to show the latest data, using import with scheduled refresh might not meet those needs. Sie können Daten direkt in Power BI streamen. Es gibt jedoch Grenzwerte für die unterstützten Datenvolumes.You can stream data directly into Power BI, though there are limits on the data volumes supported for this case.

Wenn Sie im Gegensatz dazu DirectQuery verwenden, bedeutet dies, dass beim Öffnen oder Aktualisieren eines Berichts oder Dashboards immer die neuesten Daten in der Datenquelle angezeigt werden.Using DirectQuery, by contrast, means that opening or refreshing a report or dashboard always shows the latest data in the source. Darüber hinaus können die Dashboardkacheln häufiger aktualisiert werden, bis hin zu alle 15 Minuten.Additionally, the dashboard tiles can be updated more frequently, as often as every 15 minutes.
Die Datenmenge ist sehr großData is very large Wenn die Daten sehr groß sind, ist es nicht praktikabel, alle zu importieren.If the data is very large, it wouldn't be feasible to import it all. DirectQuery erfordert im Gegensatz dazu keinen großen Datentransfer, da die Abfrage direkt durchgeführt wird.DirectQuery, by contrast, requires no large transfer of data, because it's queried in place.

Jedoch implizieren große Daten auch, dass die Leistung der Abfragen für die zugrunde liegende Quelle zu langsam ist, wie unter Auswirkungen der Verwendung von DirectQuery erläutert.However, large data might also imply that the performance of the queries against that underlying source is too slow, as discussed in Implications of using DirectQuery. Sie müssen nicht immer die vollständigen Detaildaten importieren.You don't always have to import the full detailed data. Stattdessen können die Daten während des Imports vorab aggregiert werden.Instead, the data can be pre-aggregated during import. Mit dem Abfrage-Editor können Sie während des Imports leicht die vorab erforderliche Aggregation durchführen.The Query Editor makes it easy to pre-aggregate during import. Im Extremfall wäre es möglich, genau die aggregierten Daten zu importieren, die für jedes Visual benötigt werden.In the extreme, it would be possible to import exactly the aggregate data needed for each visual. Obwohl DirectQuery die einfachste Möglichkeit für große Daten ist, kann das Importieren von Aggregatdaten möglicherweise eine Lösung bieten, wenn die zugrunde liegende Quelle zu langsam ist.While DirectQuery is the simplest approach to large data, importing aggregate data might offer a solution if the underlying source is too slow.
Sicherheitsregeln werden in der zugrunde liegenden Datenquelle definiertSecurity rules are defined in the underlying source Wenn die Daten importiert werden, verbindet sich Power BI entweder über die aktuellen Anmeldeinformationen des Benutzers über Power BI Desktop oder mit den Anmeldeinformationen, die Teil der Konfigurierung der geplanten Aktualisierung sind (über Power BI), mit der Datenquelle.When the data is imported, Power BI connects to the data source using the current user's credentials from Power BI Desktop, or the credentials defined as part of configuring scheduled refresh from the Power BI service. Wenn solch ein Bericht veröffentlicht und freigegeben wird, müssen Sie Sorgfalt walten lassen, damit dieser nur mit Benutzern geteilt wird, die dieselben Daten sehen dürfen oder dass Sicherheit auf Zeilenebene als Teil des Dataset definiert ist.In publishing and sharing such a report, be careful to only share with users allowed to see the same data, or to define row-level security as part of the dataset.

Da DirectQuery immer die zugrunde liegende Datenquelle abfragt, würde diese Konfiguration im Idealfall jede Sicherheitsmaßnahme in dieser zugrunde liegenden Quelle zulassen, die angewendet werden soll.Ideally, because DirectQuery always queries the underlying source, this configuration would allow any security in that underlying source to be applied. Allerdings stellt Power BI derzeit immer eine Verbindung mit der zugrunde liegenden Quelle mithilfe der gleichen Anmeldeinformationen her, die auch für den Import verwendet werden würden.However, currently Power BI always connects to the underlying source using the same credentials as would be used for import.

Bis Power BI zulässt, dass die Identität des Berichtsconsumers an die zugrunde liegende Quelle übermittelt wird, bietet DirectQuery also keine Vorteile für die Datenquellensicherheit.Until Power BI allows for the identity of the report consumer to pass through to the underlying source, DirectQuery offers no advantages for data source security.
Einschränkungen der Datensouveränität geltenData sovereignty restrictions apply Einige Organisationen verfügen über Richtlinien zur Datensouveränität, d. h., dass Daten die Organisation nicht verlassen können.Some organizations have policies around data sovereignty, meaning that data can't leave the organization premises. Eine Lösung, die auf Import basiert, würde ganz klar Probleme darstellen.A solution based on import would clearly present issues. Im Gegensatz dazu verbleiben Daten mit DirectQuery in der zugrunde liegenden Quelle.By contrast, with DirectQuery that data remains in the underlying source.

Sogar mit DirectQuery werden einige Caches von Daten auf der visuellen Ebene im Power BI-Dienst aufgrund einer geplanten Aktualisierung von Kacheln beibehalten.However, even with DirectQuery, some caches of data at the visual level are kept in the Power BI service because of scheduled refresh of tiles.
Die zugrunde liegende Datenquelle ist eine OLAP-Quelle und enthält MeasuresUnderlying data source is an OLAP source, containing measures Wenn die zugrunde liegende Datenquelle Measures enthält, z. B. SAP HANA oder SAP Business Warehouse, dann führt das Importieren der Daten zu anderen Problemen.If the underlying data source contains measures, such as SAP HANA or SAP Business Warehouse, then importing the data brings other issues. Dies bedeutet, dass sich die importierten Daten auf einer bestimmten Aggregationsebene befinden, so wie von der Abfrage definiert.It means that the data imported is at a particular level of aggregation, as defined by the query. Ein Beispiel sind die Measures TotalSales nach Class, Year und City.For example, measures TotalSales by Class, Year, and City. Wenn ein visuelles Element erstellt und nach höher aggregierten Daten gefragt wird, z. B. TotalSales nach Year, wird der Aggregatwert weiter aggregiert.Then if a visual is built asking for data at a higher-level aggregate, such as TotalSales by Year, it's further aggregating the aggregate value. Für additive Measures wie Sum und Min ist diese Aggregation kein Problem. Für nicht additive Measure, z. B. Average, DistinctCount, kann dies ein Problem darstellen.This aggregation is fine for additive measures, such as Sum and Min, but it's an issue for non-additive measures, such as Average, DistinctCount.

Um das Abrufen der korrekten Aggregatdaten, die für ein bestimmtes visuelles Element benötigt werden, direkt aus der Quelle zu vereinfachen, wäre es notwendig, Abfragen per visuellem Element zu senden, so wie in DirectQuery.To make it easy to get the correct aggregate data, as needed for the particular visual, directly from the source, it would be necessary to send queries per visual, as in DirectQuery.

Beim Verbindungsaufbau zu SAP Business Warehouse (BW) ermöglicht die Auswahl von DirectQuery diese Behandlung von Measures.When connecting to SAP Business Warehouse (BW), choosing DirectQuery allows for this treatment of measures. Weitere Informationen zu SAP BW finden Sie unter DirectQuery und SAP BW.For information about SAP BW, see DirectQuery and SAP BW.

Allerdings wird die Datenquelle derzeit von DirectQuery via SAP HANA genauso wie eine relationale Quelle behandelt, was sich beim Verhalten für den Import widerspiegelt.However, currently DirectQuery over SAP HANA treats it the same as a relational source, and provides similar behavior to import. Dieser Ansatz wird unter DirectQuery und SAP HANA weiter beschrieben.This approach is covered further in DirectQuery and SAP HANA.

Zusammenfassend kann festgestellt werden, dass DirectQuery in Power BI mit seinen aktuellen Möglichkeiten in den folgenden Szenarien Vorteile bietet:In summary, given the current capabilities of DirectQuery in Power BI, it offers the benefits in the following scenarios:

  • Daten werden häufig geändert, und es ist eine Berichterstellung erforderlich, die näher an der „Echtzeit“ ist.Data is changing frequently, and near real-time reporting is needed.
  • Behandlung von sehr großen Datenmengen, ohne die Notwendigkeit, vorab zu aggregieren.Handling very large data, without the need to pre-aggregate.
  • Einschränkungen der Datensouveränität gelten.Data sovereignty restrictions apply.
  • Die Quelle ist eine multidimensionale Quelle mit Measures, z. B. SAP BW.The source is a multidimensional source containing measures, such as SAP BW.

Die Details in der vorherigen Liste beziehen sich auf die Verwendung von Power BI allein.The details in the previous list relate to the use of Power BI alone. Stattdessen könnten Sie ein externes SQL Server Analysis Services- oder Azure Analysis Services-Modell verwenden, um Daten zu importieren.Instead, you could use an external SQL Server Analysis Services or Azure Analysis Services model to import data. Verwenden Sie dann Power BI, um eine Verbindung mit diesem Modell herzustellen.Then use Power BI to connect to that model. Während dieser Ansatz eine zusätzliche Konfiguration erfordern würde, bietet er jedoch größere Flexibilität.While that approach would require additional configuration, it does provide greater flexibility. Es können wesentlich größere Datenmengen importiert werden.Much larger volumes of data can be imported. Es gibt keine Einschränkung, wie oft die Daten aktualisiert werden können.There's no restriction on how frequently the data can be refreshed.

Auswirkungen der Verwendung von DirectQueryImplications of using DirectQuery

Die Verwendung von DirectQuery hat negative Auswirkungen, die in diesem Abschnitt aufgeführt sind.Use of DirectQuery does have potentially negative implications, as detailed in this section. Einige dieser Einschränkungen unterscheiden sich geringfügig je nach der genauen Quelle, die verwendet wird.Some of those limitations are slightly different depending upon the exact source that is being used. Wir gehen auf Einschränkungen ein, wo dies zutrifft, und separate Artikel behandeln diese Quellen, die sich wesentlich unterscheiden.We address limitations where applicable, and separate articles cover those sources that are substantially different.

Leistung von und Last auf der zugrunde liegenden QuellePerformance and load on the underlying source

Bei Verwendung von DirectQuery hängt die allgemeine Erfahrung sehr von der Leistung der zugrunde liegenden Datenquelle ab.When using DirectQuery, the overall experience depends very much on the performance of the underlying data source. Wenn das Aktualisieren jedes visuellen Elements, z. B. nach dem Ändern eines Slicerwerts, einige Sekunden dauert (normalerweise weniger als fünf Sekunden), wäre die Erfahrung angemessen.If refreshing each visual, for example, after changing a slicer value, takes a few seconds, usually less than 5 seconds, the experience would be reasonable. Die Erfahrung könnte sich im Vergleich zur sofortigen Reaktion beim Importieren der Daten in Power BI als zu langsam anfühlen.The experience might feel sluggish compared to the immediate response when importing the data to Power BI. Wenn die Langsamkeit der Quelle dazu führt, dass einzelne visuelle Elemente länger als zehn Sekunden dauern, wird die Erfahrung äußerst schlecht.If the slowness of the source causes individual visuals to take longer than tens of seconds, the experience becomes extremely poor. Abfragen können sogar ein Timeout bewirken.Queries may even time out.

Achten Sie neben der Leistung der zugrunde liegenden Quelle auch auf die Auslastung der Quelle.Along with the performance of the underlying source, pay attention to the load placed upon the source. Die Auslastung wirkt sich auf die Leistung aus.Load impacts performance. Jeder Benutzer, der einen gemeinsamen Bericht öffnet, und jede Dashboardkachel, die aktualisiert wird, sendet mindestens eine Abfrage pro visuellem Element an die zugrunde liegende Quelle.Each user who opens a shared report, and each dashboard tile that refreshes, sends at least one query per visual to the underlying source. Dies erfordert, dass die Quelle solch eine Abfragelast verarbeiten kann, während sie gleichzeitig eine akzeptable Leistung beibehält.This fact requires that the source can handle such a query load, while still maintaining reasonable performance.

Auswirkungen auf die Sicherheit, wenn Datenquellen kombiniert werdenSecurity implications when combining data sources

In einem DirectQuery-Modell können, so wie beim Importieren von Daten, mehrere Datenquellen verwendet werden, indem mit zusammengesetzten Modellen gearbeitet wird.It's possible to use multiple data sources in a DirectQuery model, just as when you import data, by using the Composite models feature. Wenn Sie mehrere Datenquellen verwenden, ist es wichtig zu verstehen, wie Daten zwischen den zugrunde liegenden Datenquellen ausgetauscht werden und welche Auswirkungen auf die Sicherheit daraus resultieren.When you use multiple data sources, it's important to understand how data is moved back and forth between the underlying data sources, and the security implications it brings.

Begrenzte DatentransformationenLimited data transformations

Es bestehen ähnliche Einschränkungen bei Datentransformationen, die innerhalb des Abfrage-Editors angewendet werden können.Similarly, there are limitations in the data transformations that can be applied within Query Editor. Mit importierten Daten kann eine ausgefeilte Reihe von Transformationen einfach angewendet werden, um die Daten zu bereinigen und neu zu gestalten, bevor diese zum Erstellen von visuellen Elementen verwendet werden, z. B. JSON-Dokumente analysieren oder Daten aus einer Spalte in eine Zeilenform pivotieren.With imported data, a sophisticated set of transformations can easily be applied to clean and reshape the data before using it to create visuals, such as parsing JSON documents, or pivoting data from a column to a row form. Diese Transformationen sind in DirectQuery beschränkter.Those transformations are more limited in DirectQuery.

Zunächst können beim Herstellen einer Verbindung zu einer OLAP-Quelle wie SAP Business Warehouse gar keine Transformationen definiert werden, und das gesamte externe Modell wird aus der Quelle übernommen.First, when connecting to an OLAP source like SAP Business Warehouse, no transformations can be defined at all, and the entire external model is taken from the source. Für relationale Quellen wie SQL Server ist es noch immer möglich, mehrere Transformationen pro Abfrage zu bestimmen. Diese Transformationen sind jedoch aus Leistungsgründen eingeschränkt.For relational sources, like SQL Server, it's still possible to define a set of transformations per query, but those transformations are limited for performance reasons.

All diese Transformationen müssen auf jede Abfrage für die zugrunde liegende Quelle und nicht nur einmal auf die Datenaktualisierung angewendet werden, damit sie auf die Transformationen beschränkt sind, die halbwegs in eine einzelne native Abfrage übertragen werden können.Any such transformation will need to be applied on every query to the underlying source, rather than once on data refresh, so they're limited to those transformations that can reasonably be translated into a single native query. Wenn Sie eine Transformation verwenden, die zu komplex ist, erhalten Sie einen Fehler, der angibt, dass sie entweder gelöscht oder das Modell in den Importmodus versetzt werden muss.If you use a transformation that is too complex, you receive an error that either it must be deleted or the model switched to import.

Zusätzlich wird die Abfrage, die sich aus dem Dialogfeld Daten abrufen oder Abfrage-Editor ergibt, in einem untergeordneten SELECT-Ausdruck zusammen mit den generierten Abfragen verwendet und versendet, um die erforderlichen Daten für das visuelle Element zu empfangen.Additionally, the query that results from the Get Data dialog or Query Editor will be used in a subselect within the queries generated and sent to retrieve the necessary data for a visual. Die im Abfrage-Editor definierte Abfrage muss in diesem Kontext gültig sein.The query defined in Query Editor must be valid within this context. Es ist insbesondere weder möglich, eine Abfrage mithilfe von allgemeinen Tabellenausdrücken zu verwenden, noch eine Abfrage, die gespeicherte Prozeduren aufruft.In particular, it's not possible to use a query using Common Table Expressions, nor one that invokes Stored Procedures.

ModellierungseinschränkungenModeling limitations

Der Begriff Modellierung bezeichnet in diesem Kontext den Vorgang zum Verfeinern und Anreichern der Rohdaten im Rahmen der Erstellung von Berichten, in denen sie verwendet werden.The term modeling in this context means the act of refining and enriching the raw data, as part of authoring a report using it. Beispiele:Examples include:

  • Definieren von Beziehungen zwischen TabellenDefining relationships between tables
  • Hinzufügen von neuen Berechnungen (berechnete Spalten und Measures)Adding new calculations (calculated columns and measures)
  • Umbenennen und Ausblenden von Spalten und MeasuresRenaming and hiding columns and measures
  • Definieren von HierarchienDefining hierarchies
  • Definieren der Formatierung, Standardzusammenfassung und Sortierreihenfolge für eine SpalteDefining the formatting, default summarization and sort order for a column
  • Gruppierungs- oder ClusterwerteGrouping or clustering values

Wenn Sie DirectQuery verwenden, können viele dieser Modellanreicherungen noch immer vorgenommen werden, und es existiert sicherlich noch immer das Prinzip, dass die Rohdaten angereichert werden, um den späteren Verbrauch zu verbessern.When using DirectQuery, many of these model enrichments can still be made, and certainly there's still the principle that the raw data is being enriched, so as to improve later consumption. Allerdings sind einige Modellierungsfunktionen bei der Verwendung von DirectQuery überhaupt nicht oder nur eingeschränkt verfügbar.However, there are some modeling capabilities that aren't available, or are limited, when using DirectQuery. Im Allgemeinen werden Einschränkungen angewendet, um Leistungsprobleme zu vermeiden.The limitations are generally applied to avoid performance issues. Die Einschränkungen, die häufig für DirectQuery-Quellen angewendet werden, sind hier aufgeführt.The set of limitations that are common to all DirectQuery sources are listed here. Für einzelne Quellen können zusätzliche Einschränkungen gelten, wie in Nächste Schritte beschrieben.Additional limitations might apply to individual sources, as described in Next steps.

  • Keine integrierte Datumshierarchie: Wenn Sie Daten importieren, erhält jede date/datetime-Spalte eine integrierte Datumshierarchie, die standardmäßig verfügbar ist.No built-in date hierarchy: When importing data, every date/datetime column will also have a built-in date hierarchy available by default. Wenn Sie z.B. eine Tabelle mit Verkaufsaufträgen importieren, die eine Spalte OrderDate enthält, dann wird es vor der Verwendung von OrderDate in einem visuellen Element möglich sein, die zugehörige Ebene auszuwählen (Jahr, Monat, Tag), die verwendet werden soll.For example, if importing a table of sales orders including a column OrderDate, then upon using OrderDate in a visual, it will be possible to choose the appropriate level (year, month, day) to use. Diese integrierte Datumshierarchie ist nicht verfügbar, wenn Sie DirectQuery verwenden.This built-in date hierarchy isn't available when using DirectQuery. Die DAX Time Intelligence-Funktionen können ganz normal verwendet werden, wenn eine Datumstabelle in der zugrunde liegenden Quelle verfügbar ist, wie es in vielen Data Warehouses üblich ist.If there's a Date table available in the underlying source, as is common in many data warehouses, then the DAX Time Intelligence functions can be used as normal.
  • Datums-/Zeitunterstützung nur bis zur zweiten Genauigkeit: Wenn Sie Zeitspalten in Ihrem Dataset verwenden, gibt Power BI nur Abfragen an die zugrunde liegende Quelle mit einem Detaillierungsgrad von Sekunden aus.Date/time support only to second accuracy: When using time columns in your dataset, Power BI only issues queries to the underlying source to a level of detail of seconds. Abfragen werden für Millisekunden nicht an die DirectQuery-Quelle gesendet.Queries aren't sent to the DirectQuery source for milliseconds. Entfernen Sie diesen Teil der Zeiten aus Ihren Quellspalten.Remove this part of the times from your source columns.
  • Einschränkungen in berechneten Spalten: Berechnete Spalten sind darauf beschränkt, dass sie zeilenintern sind. Das bedeutet, dass sie sich nur auf Werte anderer Spalten derselben Tabelle beziehen können, ohne Aggregatfunktionen zu verwenden.Limitations in calculated columns: Calculated columns are limited to being intra-row, as in, they can only refer to values of other columns of the same table, without the use of any aggregate functions. Zusätzlich sind die erlaubten DAX-Skalarfunktionen, z. B. LEFT(), auf die Funktionen beschränkt, die per Push an die zugrunde liegende Quelle gesendet werden können.Additionally, the DAX scalar functions, such as LEFT(), that are allowed, are limited to those functions that can be pushed to the underlying source. Die Funktionen variieren je nach den genauen Möglichkeiten der Quelle.The functions vary depending upon the exact capabilities of the source. Nicht unterstützte Funktionen werden nicht in AutoVervollständigen aufgelistet, wenn DAX für eine berechnete Tabelle erstellt wird, und würden bei Benutzung einen Fehler auslösen.Functions that aren't supported aren't listed in autocomplete when authoring the DAX for a calculated column, and would result in an error if used.
  • Keine Unterstützung für über- und untergeordnete DAX-Funktionen: Wenn Sie sich im DirectQuery-Modus befinden, ist die Verwendung der DAX PATH()-Funktionsfamilie nicht möglich, die normalerweise die Strukturen der über- und untergeordneten Funktionen behandeln, etwa als Kontenplan oder Mitarbeiterhierarchien.No support for parent-child DAX functions: When in DirectQuery mode, it's not possible to use the family of DAX PATH() functions that generally handle Parent-Child structures, such as chart of accounts, or employee hierarchies.
  • Berechnete Tabellen werden nicht unterstützt: Die Möglichkeit zum Definieren einer berechneten Tabelle mithilfe eines DAX-Ausdrucks wird im DirectQuery-Modus nicht unterstützt.Calculated tables aren't supported: The ability to define a calculated table using a DAX expression isn't supported in DirectQuery mode.
  • Filtern von Beziehungen: Informationen zur bidirektionalen Filterung finden Sie unter Bidirektionale Kreuzfilterung.Relationship filtering: For information about bi-directional filtering, see Bidirectional cross-filtering. Dieses Whitepaper stellt Beispiele im Zusammenhang mit SQL Server Analysis Services vor.This whitepaper presents examples in the context of SQL Server Analysis Services. Die grundlegenden Punkte gelten gleichermaßen für Power BI.The fundamental points apply equally to Power BI.
  • Kein Clustering: Bei Verwendung von DirectQuery ist es nicht möglich, die Clusteringfunktion zu verwenden, um Gruppen automatisch zu suchen.No Clustering: When using DirectQuery, it's not possible to use the Clustering capability, to automatically find groups.

Einschränkungen bei der BerichterstattungReporting limitations

Fast alle Berichtsfunktionen werden für DirectQuery-Modelle unterstützt.Almost all reporting capabilities are supported for DirectQuery models. Daher ist es möglich, solange die zugrunde liegenden Datenquelle ein geeignetes Maß an Leistung bietet, den gleichen Satz von Visualisierungen zu verwenden.As such, so long as the underlying source offers a suitable level of performance, the same set of visualizations can be used. Es gibt einige wichtigen Einschränkungen in einigen der anderen Funktionen des Power BI-Diensts, nachdem ein Bericht veröffentlicht wird:There are some important limitations in some of the other capabilities offered in the Power BI service after a report is published:

  • Quick Insights wird nicht unterstützt: Power BI Quick Insights durchsucht verschiedene Teilmengen des Datasets unter Verwendung eines hoch entwickelten Algorithmus, um möglicherweise interessante Erkenntnisse zu gewinnen.Quick Insights isn't supported: Power BI Quick Insights searches different subsets of your dataset while applying a set of sophisticated algorithms to discover potentially interesting insights. Da sehr leistungsstarke Abfragen vonnöten sind, ist diese Fähigkeit nicht für Datasets mit DirectQuery verfügbar.Given the need for very high performance queries, this capability isn't available on datasets using DirectQuery.
  • Q&A wird nicht unterstützt: Power BI Q&A ermöglicht Ihnen, Ihre Daten mithilfe intuitiver Möglichkeiten der natürlichen Sprache zu untersuchen und die entsprechenden Antworten in Form von Diagrammen und Grafiken zu erhalten.Q&A isn't supported: Power BI Q&A enables you to explore your data using intuitive, natural language capabilities and receive answers in the form of charts and graphs. Jedoch wird dies derzeit nicht für Datasets mit DirectQuery unterstützt.However, it's currently not supported on datasets using DirectQuery.
  • Die Verwendung von „In Excel untersuchen“ führt wahrscheinlich zu einer schlechteren Leistung: Sie können Ihre Daten untersuchen, indem Sie die Funktion „Explore in Excel“ (In Excel untersuchen) verwenden.Using Explore in Excel will likely result in poorer performance: You can explore your data by using the Explore in Excel capability on a dataset. Durch diesen Ansatz können PivotTables und PivotCharts in Excel erstellt werden.This approach allows Pivot Tables and Pivot Charts to be created in Excel. Diese Funktion wird für Datasets mit DirectQuery unterstützt, die Leistung ist aber generell langsamer als beim Erstellen von visuellen Elementen in Power BI. Deshalb ist die Verwendung von Excel für Ihre Szenarios wichtig, darum sollten Sie diesen Punkt bei Ihrer Entscheidung, DirectQuery zu verwenden, bedenken.While this capability is supported on datasets using DirectQuery, the performance is generally slower than creating visuals in Power BI, and therefore if the use of Excel is important for your scenarios, this fact should be accounted for in your decision to use DirectQuery.
  • Maximale Länge von Textspalten: Die maximale Länge der Daten in einer Textspalte für Datasets beträgt unter Verwendung von DirectQuery 32.764 Zeichen.Maximum length for text columns: The maximum length of the data in a text column for datasets using DirectQuery is 32,764 characters. Berichte über längere Texte führen zu einem Fehler.Reporting on longer texts than that will result in an error.

SicherheitSecurity

Wie weiter oben in diesem Artikel erläutert, wird ein Bericht in DirectQuery nach dem Veröffentlichen für den Power BI-Dienst immer dieselben festen Anmeldeinformationen zum Herstellen der Verbindung mit der zugrunde liegenden Datenquelle verwenden.As discussed earlier in this article, a report in DirectQuery always uses the same fixed credentials to connect to the underlying data source, after it's published to the Power BI service. Dieses Verhalten gilt für DirectQuery, nicht für Liveverbindungen zu SQL Server Analysis Services, was sich in dieser Hinsicht unterscheidet.This behavior applies to DirectQuery, not to live connections to SQL Server Analysis Services, which is different in this respect. Es ist sofort nach Veröffentlichung eines DirectQuery-Berichts notwendig, die Anmeldeinformationen des Benutzers zu konfigurieren, die verwendet werden.Immediately after publish of a DirectQuery report, it's necessary to configure the credentials of the user that will be used. Bis Sie die Anmeldeinformationen konfigurieren, würde das Öffnen des Berichts über den Power BI-Dienst zu einem Fehler führen.Until you configure the credentials, opening the report on the Power BI service would result in an error.

Sobald die Anmeldeinformationen des Benutzers bereitgestellt werden, werden diese verwendet, ungeachtet vom Benutzer, der den Bericht öffnet.Once the user credentials are provided, then those credentials will be used whichever user who opens the report. Auf diese Weise verhält es sich genau wie bei importierten Daten.In this way, it's exactly like imported data. Jeder Benutzer sieht dieselben Daten, es sei denn, es wurde eine Sicherheit auf Zeilenebene als Teil des Berichts definiert.Every user sees the same data, unless row-level security has been defined as part of the report. Die gleiche Aufmerksamkeit muss dem Freigeben des Berichts gelten, falls Sicherheitsregeln in der zugrunde liegenden Quelle definiert sind.The same attention must be paid to sharing the report, if there are any security rules defined in the underlying source.

Verhalten im Power BI-DienstBehavior in the Power BI service

Dieser Abschnitt beschreibt das Verhalten eines DirectQuery-Berichts im Power BI-Dienst, um den Grad an Last zu erläutern, die auf die Back-End-Datenquelle ausgeübt wird, angesichts der Anzahl der Benutzer, für die der Bericht und das Dashboard gemeinsam genutzt werden, der Komplexität des Berichts und der Frage, ob Sicherheit auf Zeilenebene im Bericht definiert wurde.This section describes the behavior of a DirectQuery report in the Power BI service, to explain the degree of load that will be placed on the back-end data source, given the number of users that the report and dashboard will be shared with, the complexity of the report, and whether row-level security has been defined in the report.

Berichte öffnen, mit ihnen interagieren, sie bearbeitenReports – opening, interacting with, editing

Wenn ein Bericht geöffnet ist, werden alle visuellen Elemente auf der aktuell sichtbaren Seite aktualisiert.When a report is opened, all the visuals on the currently visible page refresh. Jedes visuelle Element erfordert in der Regel mindestens eine Abfrage für die zugrunde liegenden Datenquelle.Each visual generally requires at least one query to the underlying data source. Einige visuelle Elemente erfordern möglicherweise mehr als eine Abfrage.Some visuals might require more than one query. Ein visuelles Element kann z. B. aggregierte Werte aus zwei verschiedenen Faktentabellen anzeigen oder ein komplexeres Measure oder die Summe eines nicht additiven Measure wie Count Distinct enthalten.For example, a visual might show aggregate values from two different fact tables, or contain a more complex measure, or contain totals of a non-additive measure like Count Distinct. Wenn Sie auf eine neue Seite wechseln, werden diese visuellen Elemente aktualisiert.Moving to a new page refreshes those visuals. Bei der Aktualisierung wird ein neuer Satz von Abfragen an die zugrunde liegende Quelle gesendet.Refreshing sends a new set of queries to the underlying source.

Jedes Eingreifen des Benutzers in den Bericht führt möglicherweise dazu, dass visuelle Elemente aktualisiert werden.Every user interaction on the report might result in visuals being refreshed. Wenn Sie z. B. einen anderen Wert auf einem Datenschnitt auswählen, müssen Sie eine neue Reihe von Abfragen senden, um alle betroffenen visuellen Elemente zu aktualisieren.For example, selecting a different value on a slicer requires sending a new set of queries to refresh all of the affected visuals. Dasselbe gilt für das Klicken auf ein visuelles Element, um andere visuelle Elemente hervorzuheben oder einen Filter zu ändern.The same is true for clicking on a visual to cross-highlight other visuals, or changing a filter.

In ähnlicher Weise erfordert die Bearbeitung eines neuen Berichts das Senden von Abfragen für jeden Schritt auf dem Weg zur Erstellung des endgültigen visuellen Elements.Similarly, editing a new report requires queries to be sent for each step on the path to produce the final visual.

Es erfolgt eine Zwischenspeicherung der Ergebnisse.There's some caching of results. Die Aktualisierung eines visuellen Elements erfolgt augenblicklich, wenn vor kurzem genau dieselben Ergebnisse erzielt wurden.The refresh of a visual is instantaneous if the exact same results have recently been obtained. Wenn keine Sicherheit auf Zeilenebene definiert ist, werden solche Caches nicht von den Benutzern gemeinsam genutzt.If row-level security is defined, such caches aren't shared across users.

DashboardaktualisierungDashboard Refresh

Einzelne visuelle Elemente oder die gesamte Seiten können als Kacheln an das Dashboard angeheftet werden.Individual visuals, or entire pages, can be pinned to dashboard as tiles. Die auf den DirectQuery-Datasets basierenden Kacheln werden automatisch nach einem Zeitplan aktualisiert.Tiles based on DirectQuery datasets refresh automatically according to a schedule. Kacheln senden Abfragen an die Back-End-Datenquelle.Tiles send queries to the back-end data source. Standardmäßig werden Datasets einmal pro Stunde aktualisiert, können aber als Teil der Dataset-Einstellungen für einen Zeitraum zwischen „Wöchentlich“ oder „Alle 15 Minuten“ konfiguriert werden.By default, datasets refresh every hour, but can be configured as part of dataset settings to be between weekly and every 15 minutes.

Wenn keine Sicherheit auf Zeilenebene im Modell definiert ist, wird jede Kachel einmal aktualisiert und die Ergebnisse werden für alle Benutzer freigegeben.If no row-level security is defined in the model, each tile is refreshed once, and the results shared across all users. Andernfalls kann sich ein großer Multiplikatoreffekt ergeben.Otherwise, there can be a large multiplier effect. Jede Kachel erfordert separate Abfragen pro Benutzer, die an die zugrunde liegende Quelle gesendet werden müssen.Each tile requires separate queries per user to be sent to the underlying source.

Ein Dashboard mit zehn Kacheln, das mit 100 Benutzern geteilt und auf einem Dataset mit DirectQuery mit Sicherheit auf Zeilenebene erstellt wird, und so konfiguriert ist, dass es alle 15 Minuten aktualisiert wird, würde alle 15 Minuten zum Senden von mindestens 1000 Abfragen an die Back-End-Quelle führen.A dashboard with 10 tiles, shared with 100 users, created on a dataset using DirectQuery with row-level security, and configured to refresh every 15 minutes, would result in at least 1000 queries being sent every 15 minutes to the back-end source.

Achten Sie sorgfältig auf die Verwendung der Sicherheit auf Zeilenebene und die Konfiguration des Aktualisierungszeitplans.Pay careful consideration to the use of row-level security, and the configuring of the refresh schedule.

TimeoutsTime-outs

Ein Timeout von vier Minuten wird für einzelne Abfragen für den Power BI-Dienst angewendet.A time-out of four minutes is applied to individual queries in the Power BI service. Abfragen, die mehr Zeit benötigen, schlagen fehl.Queries taking longer than that will fail. Wie bereits erwähnt, wird empfohlen, DirectQuery für Quellen zu verwenden, die eine nahezu interaktive Abfrageleistung bieten.As stressed earlier, we recommend that you use DirectQuery for sources that provide near interactive query performance. Diese Einschränkung soll verhindern, dass Probleme durch zu lange Ausführungszeiten entstehen.This limit is intended to prevent issues from overly long execution times.

Andere AuswirkungenOther implications

Einige allgemeine Auswirkungen der Verwendung von DirectQuery sind die folgenden:Some other general implications of using DirectQuery are as follows:

  • Wenn sich Daten ändern, ist es notwendig, eine Aktualisierung durchzuführen, damit die neuesten Daten angezeigt werden: Hinsichtlich der Verwendung von Caches gibt es keine Garantie, dass das visuelle Element immer die neuesten Daten anzeigt.If data is changing, it's necessary to refresh to ensure the latest data is shown: Given the use of caches, there's no guarantee that the visual is always showing the latest data. Ein visuelles Element kann möglicherweise die Transaktionen des letzten Tags anzeigen.For example, a visual might show the transactions in the last day. Da ein Slicer geändert wird, kann ein visuelles Element aktualisiert werden, damit es die Transaktionen der letzten zwei Tage anzeigt.Because of a slicer being changed, it might refresh to show the transactions for the last two days. Die Transaktionen könnten neuere, neu eingetroffene Transaktionen umfassen.The transactions could include recent, newly arrived transactions. Die Umwandlung des Slicers in seinen ursprünglichen Wert würde dazu führen, dass wieder die zuvor abgerufenen zwischengespeicherten Werte angezeigt werden.Returning the slicer to its original value would result in it again showing the cached value previously obtained.

    Wenn Sie Aktualisieren auswählen, werden sämtliche Caches geleert, und alle visuellen Elemente auf der Seite werden aktualisiert, damit sie die neuesten Daten anzeigen.Selecting Refresh clears any caches and refreshes all the visuals on the page to show the latest data.

  • Wenn Daten geändert werden, besteht keine Garantie der Konsistenz zwischen visuellen Elementen: Andere Visuals, egal ob auf derselben Seite oder auf verschiedenen Seiten, werden möglicherweise zu unterschiedlichen Zeiten aktualisiert.If data is changing, there's no guarantee of consistency between visuals: Different visuals, whether on the same page or on different pages, might be refreshed at different times. Wenn die Daten in der zugrunde liegenden Quelle geändert werden, kann nicht garantiert werden, dass jedes visuelle Elemente die Daten zu exakt demselben Zeitpunkt anzeigt.If the data in the underlying source is changing, there's no guarantee that each visual shows the data at the exact same point of time. Wenn tatsächlich davon ausgegangen wird, dass manchmal mehr als eine Abfrage für ein einzelnes visuelles Element benötigt wird, z. B. um die Details und Gesamtwerte abzurufen, kann die Konsistenz auch für ein einzelnes visuelles Element nicht garantiert werden.Indeed, given that sometimes more than one query is required for a single visual, for example, to obtain the details and the totals, then consistency even within a single visual isn't guaranteed. Damit diese Konsistenz gewährleistet werden kann, ist sobald ein visuelles Element aktualisiert wird, der Aktualisierungsaufwand aller visuellen Elemente erforderlich, zusammen mit dem Gebrauch der zahlungspflichtigen Funktionen wie der Momentaufnahmeisolation in der zugrunde liegenden Quelle.To guarantee this consistency would require the overhead of refreshing all visuals whenever any visual refreshed, in tandem with the use of costly features like Snapshot Isolation in the underlying data source.

    Dieses Problem kann weitgehend minimiert werden, indem Sie erneut Aktualisieren auswählen, wodurch alle visuellen Elemente auf der Seite aktualisiert werden.This issue can be mitigated to a large extent by again selecting Refresh to refresh all of the visuals on the page. Auch wenn Sie den Importmodus verwenden, gibt es ein ähnliches Problem für die Garantie der Konsistenz, wenn Sie Daten aus mehr als einer Tabelle importieren.Even if using import mode, there's a similar problem of guaranteeing consistency while importing data from more than one table.

  • Die Aktualisierung in Power BI Desktop ist notwendig, um Änderungen bei Metadaten widerzuspiegeln: Nachdem ein Bericht veröffentlicht wurde, werden die visuellen Elemente im Bericht aktualisiert.Refresh in Power BI Desktop is needed to reflect any metadata changes: After a report is published, Refresh will refresh the visuals in the report. Wenn das Schema der zugrunde liegenden Datenquelle geändert wurde, werden diese Änderungen nicht automatisch übernommen, um die verfügbaren Felder in der Feldliste zu ändern.If the schema of the underlying source has changed, then those changes aren't automatically applied to change the available fields in the field list. Wenn Tabellen oder Spalten aus der zugrunde liegenden Datenquelle entfernt wurden, kann es dazu kommen, dass die Abfrage bei der Aktualisierung fehlschlägt.If tables or columns have been removed from the underlying source, it might result in query failure upon refresh. Wenn Sie einen Bericht in Power BI Desktop öffnen und Aktualisieren auswählen, werden die Felder im Modell aktualisiert, um die Änderungen anzuzeigen.Opening the report in Power BI Desktop, and choosing Refresh updates the fields in the model to reflect the changes.

  • Beschränkung von einer Millionen Zeilen, die auf eine beliebige Abfrage zurückgegeben werden: Für die Anzahl von Zeilen, die in einer einzelnen Abfrage an die zugrunde liegende Quelle zurückgegeben werden, gibt es eine festgelegte maximale Anzahl von einer Million Zeilen.Limit of 1 million rows returned on any query: There's a fixed limit of 1 million rows placed on the number of rows that can be returned in any single query to the underlying source. Diese Beschränkung hat in der Regel keine praktische Auswirkung, und visuelle Elemente werden selbst nicht so viele Punkte anzeigen.This limit generally has no practical implications, and visuals themselves aren't going to display that many points. Allerdings kann die Begrenzung in Fällen auftreten, in denen Power BI die gesendeten Abfragen nicht vollständig optimiert und Zwischenergebnisse angefragt werden, die diese Begrenzung übersteigen.However, the limit can occur in cases where Power BI isn't fully optimizing the queries sent, and there's some intermediate result being requested that exceeds the limit. Sie kann auch während der Erstellung eines visuellen Elements auf dem Pfad zu einem akzeptableren Endzustand auftreten.It can also occur while building a visual, on the path to a more reasonable final state. Beispielsweise würde das Einschließen von Customer und TotalSalesQuantity diese Begrenzung erreichen, falls es mehr als eine Million Kunden gibt, bis einige Filter angewendet werden.For example, including Customer and TotalSalesQuantity would hit this limit if there were more than 1 million customers, until some filter were applied.

    Der zurückgegebene Fehler wäre: „Das Resultset einer Abfrage einer externen Datenquelle hat die maximal zulässige Größe von '1000000' Zeilen überschritten.“The error that would be returned would be: "The resultset of a query to external data source has exceeded the maximum allowed size of '1000000' rows."

  • Ein Wechsel vom Import- in den DirectQuery-Modus ist nicht möglich: Auch wenn es möglich ist, ein Modell vom DirectQuery- auf den Importmodus umzustellen, müssen dazu alle nötigen Daten importiert werden.Can't change from import to DirectQuery mode: While it's possible to switch a model from DirectQuery mode to use import mode, all the necessary data must be imported. Es ist auch nicht möglich, in den anderen Modus zurück zu wechseln. Dies liegt an den Features, die nicht im DirectQuery-Modus unterstützt werden.It's also not possible to switch back, primarily because of the set of features not supported in DirectQuery mode. Aufgrund der anderen Verarbeitung externer Measures kann für DirectQuery-Modelle für mehrdimensionale Datenquellen wie SAP BW auch vom DirectQuery- in den Importmodus gewechselt werden.DirectQuery models over multidimensional sources, like SAP BW, also can't be switched from DirectQuery to import, because of the different treatment of external measures.

DirectQuery im Power BI-DienstDirectQuery in the Power BI service

Alle Quellen werden von Power BI Desktop unterstützt.All sources are supported from Power BI Desktop. Einige Quellen sind auch direkt im Power BI-Dienst verfügbar.Some sources are also available directly from within the Power BI service. Beispielsweise ist es möglich, dass ein Geschäftsbenutzer Power BI zum Herstellen einer Verbindung mit den Daten in Salesforce verwendet und sofort ohne die Verwendung von Power BI Desktop ein Dashboard abrufen kann.For example, it's possible for a business user to use Power BI to connect to their data in Salesforce, and immediately get a dashboard, without use of Power BI Desktop.

Nur zwei der von DirectQuery aktivierten Quellen sind direkt im Dienst verfügbar.Only two of the DirectQuery enabled-sources are available directly in the service:

  • SparkSpark
  • Azure SQL Data WarehouseAzure SQL Data Warehouse

Es wird jedoch empfohlen, dass jede Verwendung von DirectQuery über diese beiden Quellen innerhalb von Power BI Desktop stattfindet.However, we recommend that any use of DirectQuery over those two sources start within Power BI Desktop. Der Grund dafür ist, dass beim erstmaligen Herstellen der Verbindung im Power BI-Dienst viele wichtige Einschränkungen gelten.The reason is that when the connection is initially made in the Power BI service, many key limitations will apply. Während der Einstieg in den Power BI-Dienst einfach war, gibt es Einschränkungen bei der weiteren Verbesserung des resultierenden Berichts.While the start point was easy, starting in the Power BI service, there are limitations on enhancing the resulting report any further. Es ist dann z. B. nicht möglich, Berechnungen zu erstellen oder viele analytische Features zu verwenden oder sogar die Metadaten zu aktualisieren, um Änderungen des zugrunde liegenden Schemas widerzuspiegeln.For example, it's not possible then to create any calculations, or use many analytical features, or even refresh the metadata to reflect any changes to the underlying schema.

Leitfaden zur erfolgreichen Verwendung von DirectQueryGuidance for using DirectQuery successfully

Wenn Sie DirectQuery verwenden möchten, finden Sie in diesem Abschnitt ausführliche Anleitungen, mit deren Hilfe Sie diese Funktion erfolgreich ausführen können.If you're going to use DirectQuery, this section provides you with some high-level guidance on how to ensure success. Die Anleitung in diesem Abschnitt wurde auf Basis der Auswirkungen der Verwendung von DirectQuery geschrieben, die in diesem Artikel beschrieben wurden.The guidance in this section is derived from the implications of using DirectQuery that have been described in this article.

Leistung der Back-End-DatenquelleBack-end data source performance

Überprüfen Sie, ob einfache visuelle Elemente in angemessener Zeit aktualisiert werden.Validate that simple visuals refresh in a reasonable time. Die Aktualisierung sollte innerhalb von fünf Sekunden erfolgen, damit Sie eine akzeptable interaktive Erfahrung erhalten.A refresh time should be within 5 seconds to have a reasonable interactive experience. Wenn visuelle Elemente länger als 30 Sekunden brauchen, ist es sehr wahrscheinlich, dass weitere Probleme nach der Veröffentlichung des Berichts auftreten.If visuals are taking longer than 30 seconds, it's highly likely that further issues will occur following publication of the report. Diese Probleme können dazu führen, dass die Lösung nicht praktikabel ist.These issues can make the solution unworkable.

Wenn Abfragen langsam sind, untersuchen Sie die Abfragen, die an die zugrunde liegende Quelle gesendet werden, und den Grund für die Abfrageleistung.If queries are slow, examine the queries being sent to the underlying source, and the reason for the query performance. In diesem Artikel wird die breite Palette der bewährten Methoden zur Datenbankoptimierung für die gesamten potenziellen zugrunde liegenden Quellen nicht behandelt.This article doesn't cover the wide range of database optimization best practices across the full set of potential underlying sources. In diesem Artikel werden die Standardverfahren für Datenbanken behandelt, die für die meisten Situationen gelten:This article does cover the standard database practices that apply to most situations:

  • Beziehungen, die auf Integerspalten basieren, werden in der Regel besser ausgeführt, als Joins auf Spalten eines anderen Datentyps.Relationships based on integer columns generally perform better than joins on columns of other data types.
  • Die entsprechenden Indizes sollten erstellt werden.The appropriate indexes should be created. Indexerstellung bedeutet im Allgemeinen die Verwendung von Columnstore-Indizes in den Quellen, die diese unterstützen, z. B. SQL Server.Index creation generally means the use of column store indexes in those sources that support them, for example, SQL Server.
  • Es sollten alle notwendigen Statistiken in der Quelle aktualisiert werden.Any necessary statistics in the source should be updated.

Leitfaden zum ModellentwurfModel Design Guidance

Beachten Sie bei der Definition des Modells die folgenden Anleitungen:When defining the model, consider following this guidance:

  • Vermeiden Sie komplexe Abfragen im Abfrage-Editor.Avoid complex queries in Query Editor. Der Abfrage-Editor übersetzt eine komplexe Abfrage in eine einzelne SQL-Abfrage.Query Editor translates a complex query into a single SQL query. Die einzelne Abfrage wird bei jeder an diese Tabelle gesendeten Abfrage in der Unterauswahl angezeigt.The single query appears in the subselect of every query sent to that table. Wenn diese Abfrage komplex ist, kann es zu Leistungsproblemen bei jeder gesendeten Abfrage kommen.If that query is complex, it might result in performance issues on every query sent. Die aktuelle SQL-Abfrage für eine Reihe von Schritten erhalten Sie, indem Sie den letzten Schritt im Abfrage-Editor und dann View Native Query (Native Abfrage anzeigen) aus dem Kontextmenü auswählen.The actual SQL query for a set of steps can be obtained by selecting the last step in Query Editor, and choosing View Native Query from the context menu.

  • Halten Sie Measures einfach.Keep measures simple. Zumindest am Anfang wird empfohlen, Measures auf einfache Aggregate zu beschränken.At least initially, we recommend limiting measures to simple aggregates. Wenn die Measures dann zufriedenstellend ausgeführt werden, können komplexere Measures definiert werden. Achten Sie jedoch auf die Leistung der einzelnen Measures.Then if the measures operate in a satisfactory manner, more complex measures can be defined, but paying attention to the performance for each.

  • Vermeiden Sie Beziehungen in berechneten Spalten.Avoid relationships on calculated columns. Diese Anleitung ist für Datenbanken relevant, bei denen Sie mehrspaltige Joins durchführen müssen.This guidance is relevant to databases where you need to do multi-column joins. Power BI lässt heute nicht zu, dass eine Beziehung auf mehreren Spalten als FS/PS vergeben wird.Power BI today doesn't allow a relationship to be based on multiple columns as the FK/PK. Die am meisten verwendete Problemumgehung ist, die Spalten mithilfe einer berechneten Spalte zu verknüpfen und dann den Join auf Basis dieser Spalte zu basieren.The common workaround is to concatenate the columns together using a calculated column, and base the join on that column. Während diese Problemumgehung für importierte Daten sinnvoll ist, führt sie bei DirectQuery zu einem Join für einen Ausdruck.While this workaround is reasonable for imported data, for DirectQuery, it results in a join on an expression. Dieses Ergebnis verhindert in der Regel die Verwendung von Indizes und führt zu einer schlechten Leistung.That result commonly prevents use of any indexes, and leads to poor performance. Die einzige Problemumgehung ist tatsächlich, die vielen Spalten in eine einzige Spalte in der zugrunde liegenden Datenbank zu materialisieren.The only workaround is to actually materialize the multiple columns into a single column in the underlying database.

  • Vermeiden Sie Beziehungen zwischen „uniqueidentifier“-Spalten.Avoid relationships on uniqueidentifier columns. Power BI verfügt nicht über die native Unterstützung für den Datentyp uniqueidentifier.Power BI doesn't natively support a datatype of uniqueidentifier. Die Definition einer Beziehung zwischen Spalten vom Typ uniqueidentifier-Spalte führt zu einer Abfrage mit einem Join, der eine Umwandlung umfasst.Defining a relationship between columns of type uniqueidentifier column results in a query with a join involving a cast. Auch dieser Ansatz führt häufig zu schlechter Leistung.Again, this approach commonly leads to poor performance. Bis dieser Fall speziell optimiert ist, besteht die einzige Umgehung dieses Problems darin, Spalten eines alternativen Typs in der zugrunde liegenden Datenbank zu materialisieren.Until this case is specifically optimized, the only workaround is to materialize columns of an alternative type in the underlying database.

  • Blenden Sie die „to“-Spalte für Beziehungen aus.Hide the to column on relationships. Die to-Spalte für Beziehungen ist üblicherweise der Primärschlüssel in der to-Tabelle.The to column on relationships is commonly the primary key on the to table. Diese Spalte sollte ausgeblendet werden.That column should be hidden. Wenn sie ausgeblendet ist, wird sie nicht in der Feldliste angezeigt und kann nicht in visuellen Elementen verwendet werden.If hidden, it doesn't appear in the field list and can't be used in visuals. Häufig sind die Spalten, auf denen Beziehungen basieren, tatsächlich Systemspalten, z. B. Ersatzschlüssel in einem Data Warehouse.Often the columns on which relationships are based are in fact system columns, for example, surrogate keys in a data warehouse. Es ist ohnehin eine bewährte Methode, solche Spalten auszublenden.It's good practice to hide such columns anyway. Wenn die Spalte eine Bedeutung aufweist, führen Sie eine berechnete und sichtbare Spalte ein, die über einen einfachen Ausdruck verfügt, der mit dem Primärschlüssel identisch ist, wie im folgenden Beispiel:If the column does have meaning, then introduce a calculated column that is visible, and that has a simple expression of being equal to the primary key, as in the following example:

        ProductKey_PK   (Destination of a relationship, hidden)
        ProductKey (= [ProductKey_PK],   visible)
        ProductName
        ...
    
  • Überprüfen Sie alle Vorkommen von berechneten Spalten und Änderungen des Datentyps.Examine all uses of calculated columns and data type changes. Die Verwendung dieser Fähigkeiten ist nicht unbedingt schädlich.Use of these capabilities aren't necessarily harmful. Sie führen dazu, dass die Abfragen, die an die zugrundeliegende Quelle gesendet werden, Ausdrücke statt einfacher Verweise auf Spalten enthalten.They do result in the queries sent to the underlying source containing expressions rather than simple references to columns. Das wiederum kann dazu führen, dass Indizes nicht verwendet werden.That again might result in indexes not being used.

  • Vermeiden Sie die Verwendung der bidirektionalen Kreuzfilterung für Beziehungen.Avoid use of the bi-directional cross filtering on relationships. Die Verwendung des bidirektionalen Kreuzfilterns kann zu Abfrageanweisungen führen, die nicht gut funktionieren.Use of bi-directional cross filtering can lead to query statements that don't perform well.

  • Experimentieren Sie mit der Einstellung Referenzielle Integrität voraussetzen.Experiment with setting Assume referential integrity. Die Einstellung „Referenzielle Integrität voraussetzen“ für Beziehungen lässt zu, dass Abfragen INNER JOIN-Anweisungen und nicht OUTER JOIN-Anweisungen verwenden.The Assume Referential Integrity setting on relationships enables queries to use INNER JOIN statements rather than OUTER JOIN. Diese Anleitung verbessert im Allgemeinen die Abfrageleistung, obwohl dies nicht von den Eigenheiten der Datenquelle abhängt.This guidance generally improves query performance, though it does depend on the specifics of the data source.

  • Verwenden Sie nicht die relative Datenfilterung im Abfrage-Editor.Don't use the relative data filtering in Query Editor. Es ist möglich, die relative Datenfilterung im Abfrage-Editor zu definieren.It's possible to define relative date filtering in Query Editor. Ein Beispiel dafür ist es, nach Zeilen zu filtern, in denen das Datum im Zeitraum der letzten 14 Tage liegt.For example, to filter to the rows where the date is in the last 14 days.

    Zeilen für die letzten 14 Tage filtern

    Dieser Filter wird jedoch in einen Filter übersetzt, der auf dem festen Datum basiert, wie dem Zeitpunkt der Erstellung der Abfrage.However, this filter is translated into a filter based on the fixed date, as at the time the query was authored. Dieses Ergebnis kann in der nativen Abfrage angezeigt werden.This result can be seen from viewing the native query.

    Zeilen in nativer SQL-Abfrage filtern

    Dies ist vermutlich nicht das gewünschte Ergebnis.This result is probably not what you wanted. Um sicherzustellen, dass der Filter basierend auf dem Datum angewendet wird, an dem der Bericht ausgeführt wird, wenden Sie stattdessen den Filter im Bericht als Berichtsfilter an.To ensure the filter is applied based on the date at the time the report runs, instead apply the filter in the report as a Report Filter. Derzeit würde dieser Ansatz funktionieren, indem Sie eine berechnete Tabelle erstellen, die die Anzahl der vergangenen Tage mithilfe der DAX DATE()-Funktion berechnet, und dann diese berechnete Spalte in einem Filter verwenden.Currently, this approach would be done by creating a calculated column calculating the number of days ago, using the DAX DATE() function, and then using that calculated column in a filter.

Leitfaden zum BerichtsentwurfReport Design Guidance

Wenn Sie einen Bericht mithilfe einer DirectQuery-Verbindung erstellen, befolgen Sie diese Anweisungen:When creating a report using a DirectQuery connection, follow this guidance:

  • Überlegungen für das Verwenden von Optionen zur Verringerung von Abfragen: Power BI stellt Optionen im Bericht bereit, mit denen weniger Abfragen gesendet und bestimmte Interaktionen deaktiviert werden, die bei langer Ausführung der resultierenden Abfragen zu Leistungseinbußen führen würden.Consider use of Query Reduction options: Power BI provides options in the report to send fewer queries, and to disable certain interactions that would result in a poor experience if the resulting queries take a long time to run. Navigieren Sie in Power BI Desktop zu Datei > Optionen und Einstellungen > Optionen, und wählen Sie Abfrageverringerung aus, um auf diese Optionen zuzugreifen.To access these options in Power BI Desktop, go to File > Options and settings > Options and select Query reduction.

    Optionen für die Abfrageverringerung

    Durch die Kontrollkästchen unter Abfrageverringerung können Sie die übergreifende Hervorhebung für den gesamten Bericht deaktivieren.Checking box selections on the Query reduction let you disable cross-highlighting throughout your entire report. Sie können auch eine Anwenden-Schaltfläche für Slicer- oder Filterauswahlen anzeigen.You can also show an Apply button to slicers or filter selections. Dieser Ansatz ermöglicht es Ihnen, viele Slicer- und Filterauswahlen zu treffen, bevor Sie diese anwenden.This approach lets you then make many slicer and filter selections before applying them. Es werden keine Abfragen gesendet, bis Sie die Schaltfläche Anwenden für den Slicer auswählen.No queries are sent until you select the Apply button on the slicer. Ihre Auswahl kann dann zum Filtern der Daten verwendet werden.Your selections can then be used to filter the data.

    Diese Optionen gelten für Ihren Bericht, während Sie in Power BI Desktop mit ihm interagieren.These options apply to your report while you interact with it in Power BI Desktop. Diese Optionen gelten auch, wenn Ihre Benutzer den Bericht im Power BI-Dienst verwenden.These options also apply when your users consume the report in the Power BI service.

  • Wenden Sie zuerst Filter an: Wenden Sie anwendbare Filter immer zu Beginn der Erstellung eines Visuals an.Apply filters first: Always apply any applicable filters at the start of building a visual. Wenden Sie z. B. den Filter Jahr zu Beginn an, anstatt sich im TotalSalesAmount und ProductName zu bewegen und dann nach einem bestimmten Jahr zu filtern.For example, rather than drag in TotalSalesAmount and ProductName, then filter to a particular year, apply the filter on Year at the very start. Jeder Schritt beim Erstellen eines visuellen Elements sendet eine Abfrage.Each step of building a visual sends a query. Obwohl es möglich ist, Änderungen durchzuführen, bevor die erste Abfrage abgeschlossen ist, hinterlässt dieser Ansatz dennoch unnötige Last auf der zugrunde liegenden Quelle.Although it's possible to then make another change before the first query has completed, this approach still leaves unnecessary load on the underlying source. Wenn Filter früh angewendet werden, werden diese zwischenzeitlichen Abfragen generell günstiger.By applying filters early, it generally makes those intermediate queries less costly. Darüber hinaus kann es dazu führen, dass die Begrenzung von eine Million Zeilen erreicht wird, wenn die Filter nicht frühzeitig angewendet werden.Also, failing to apply filters early can result in hitting the 1 million row limit.

  • Begrenzen Sie die Anzahl von Visuals auf einer Seite: Wenn Sie eine Seite öffnen oder einen Slicer oder Filter auf Seitenebene ändern, werden alle visuellen Elemente auf einer Seite aktualisiert.Limit the number of visuals on a page: When you open a page or change a page level slicer or filter, all of the visuals on a page are refreshed. Es gibt auch eine Begrenzung der Anzahl von Abfragen, die parallel gesendet werden.There's also a limit on the number of queries that are sent in parallel. Wenn die Anzahl der visuellen Elemente steigt, werden auch einige visuelle Elemente nacheinander aktualisiert, wodurch viel mehr Zeit für die Aktualisierung der gesamten Seite benötigt wird.As the number of visuals increases, some of the visuals will be refreshed in a serial manner, increasing the time taken to refresh the entire page. Aus diesem Grund wird empfohlen, die Anzahl von visuellen Elementen auf einer Seite zu begrenzen, und stattdessen mehr einfachere Seiten zu verwenden.For this reason, we recommend that you limit the number of visuals on a single page, and instead have more, simpler pages.

  • Erwägen Sie, die Interaktion zwischen Visuals zu deaktivieren: Standardmäßig können Visualisierungen auf einer Berichtsseite für die Kreuzfilterung und -hervorhebung der anderen Visualisierungen auf der Seite verwendet werden.Consider switching off interaction between visuals: By default, visualizations on a report page can be used to cross-filter and cross-highlight the other visualizations on the page. Wenn z. B. 1999 auf dem Kreisdiagramm ausgewählt ist, wird das Säulendiagramm übergreifend hervorgehoben, um die Verkäufe nach Kategorie für 1999 anzuzeigen.For example, having selected 1999 on the pie chart, the column chart is cross highlighted to show the sales by category for 1999.

    Mehrere visuelle Elemente mit Kreuzfiltern und übergreifendem Hervorheben

    Die Kreuzfilterung und die übergreifende Hervorhebung in DirectQuery erfordern das Übermitteln von Abfragen an die zugrunde liegende Quelle.Cross-filtering and cross-highlighting in DirectQuery require queries to be submitted to the underlying source. Die Interaktion sollte deaktiviert werden, wenn die Reaktionszeit auf die Auswahl der Benutzer unangemessen lang wäre.The interaction should be switched off if the time taken to respond to users' selections would be unreasonably long. Sie können diese Interaktion deaktivieren.You can switch off this interaction. Deaktivieren Sie die Interaktion entweder für den gesamten Bericht, wie bereits für die Optionen der Abfrageverringerung beschrieben, oder von Fall zu Fall.Switch off the interaction for either the entire report, as described earlier for query reduction options, or on a case-by-case basis. Weitere Informationen finden Sie unter Gegenseitige Kreuzfilterung von Visuals in einem Power BI-Bericht.For more information, see How visuals cross-filter each other in a Power BI report.

Zusätzlich zu den vorherigen Vorschlägen kann jede der folgenden Berichtsfunktionen Leistungsprobleme verursachen:In addition to the previous suggestions, each of the following reporting capabilities can cause performance issues:

  • Measurefilter: Visuelle Elemente, die Measures oder Aggregate von Spalten enthalten, können Filter in diesen Measures enthalten.Measure filters: Visuals containing measures, or aggregates of columns, can contain filters in those measures. Das visuelle Element unten zeigt z. B. SalesAmount nach Category an, aber nur einschließlich dieser Kategorien mit mehr als 20M Verkäufen.For example, the following graphic shows SalesAmount by Category, but only including those categories with more than 20M of sales.

    Visuelles Element, das Measures anzeigt, die Filter enthalten

    Dieser Ansatz führt dazu, dass zwei Abfragen an die zugrunde liegende Datenquelle gesendet werden:This approach results in two queries being sent to the underlying source:

    • Die erste Abfrage ruft die Kategorien ab, die die Bedingung erfüllen (SalesAmount größer als 20 Millionen).The first query retrieves the Categories meeting the condition, SalesAmount greater than 20 million.
    • Die zweite Abfrage ruft die notwendigen Daten für das visuelle Element ab, einschließlich der Kategorien, die die Bedingung in der WHERE-Klausel erfüllen.The second query then retrieves the necessary data for the visual, including the categories that met the condition in the WHERE clause.

    Dieser Ansatz funktioniert in der Regel gut, wenn es Hunderte oder Tausende von Kategorien gibt, wie in diesem Beispiel.This approach generally works well if there are hundreds or thousands of categories, as in this example. Die Leistung kann sich verschlechtern, wenn die Anzahl der Kategorien viel größer ist.Performance can degrade if the number of categories is much larger. Die Abfrage schlägt bei mehr als einer Million Kategorien, die die Bedingung erfüllen, fehl.The query fails for more than a million categories meeting the condition. Die Beschränkung auf eine Million Zeilen wurde bereits früher erläutert.The 1 million row limit was discussed earlier.

  • TopN-Filter: Erweiterte Filter können so definiert werden, dass nur die oberen oder unteren N Werte gefiltert werden, die nach einem bestimmten Measure geordnet sind.TopN filters: Advanced filters can be defined to filter on only the top or bottom N values ranked by some measure. So können die Filter z. B. die zehn obersten Kategorien in dem vorherigen visuellen Element einbeziehen.For example, filters can include the top 10 categories in the previous visual. Dieser Ansatz führt erneut dazu, dass zwei Abfragen an die zugrunde liegende Datenquelle gesendet werden.This approach again results in two queries being sent to the underlying source. Allerdings gibt die erste Abfrage alle Kategorien der zugrunde liegenden Quelle zurück, dann werden die TopN basierend auf den zurückgegebenen Ergebnissen bestimmt.However, the first query will return all categories from the underlying source, and then the TopN are determined based on the returned results. Abhängigkeit von der Kardinalität der beteiligten Spalte kann dieser Ansatz zu Leistungsproblemen oder Abfragefehlern aufgrund des Zeilengrenzwerts von einer Million führen.Depending on the cardinality of the column involved, this approach can lead to performance issues or query failures because of the 1 million row limit.

  • Median: Im Allgemeinen wird jede Aggregation wie Sum oder Count Distinct per Push an die zugrunde liegende Quelle gesendet.Median: Generally, any aggregation, such as Sum or Count Distinct, is pushed to the underlying source. Dies gilt allerdings nicht für den Median, da dieses Aggregat normalerweise nicht von der zugrunde liegenden Quelle unterstützt wird.However, this fact isn't true for median, which this aggregate is generally not supported by the underlying source. In solchen Fällen werden die Detaildaten aus der zugrunde liegenden Quelle abgerufen, und der Median wird aus den zurückgegebenen Ergebnissen berechnet.In such cases, the detail data is retrieved from the underlying source, and the median calculated from the returned results. Dieser Ansatz ist sinnvoll, wenn der Median über eine relativ kleine Anzahl von Ergebnissen berechnet werden soll.This approach is reasonable when the median is to be calculated over a relatively small number of results. Bei großer Kardinalität kommt es zu Leistungsproblemen oder Abfrageausfällen aufgrund des Zeilengrenzwerts von einer Million.Performance issues or query failures because of the 1 million row limit occur if the cardinality is large. Den Median der Bevölkerungszahl eines Landes zu ermitteln, kann sinnvoll sein, nicht jedoch die Ermittlung des Medians von Verkaufspreisen.For example, Median Country Population might be reasonable, but Median Sales Price might not be.

  • Erweiterte Textfilter (enthält und ähnlich): Wenn nach einer Textspalte gefiltert wird, erlaubt das erweiterte Filtern Filter wie enthält und beginnt mit usw.Advanced text filters (contains and similar): When filtering on a text column, the advanced filtering allows filters like contains and begins with and so on. Diese Filter können sicherlich zu Leistungseinbußen bei einigen Datenquellen führen.These filters can certainly result in degraded performance for some data sources. Insbesondere sollte der Standardfilter enthält nicht verwendet werden, falls nach einer exakten Übereinstimmung gesucht wird.In particular, the default contains filter shouldn't be used if what is required is an exact match. Obwohl das Ergebnis möglicherweise identisch ist, kann sich abhängig von den tatsächlichen Daten die Leistung aufgrund der Verwendung von Indizes erheblich unterscheiden.Although the results might be the same, depending on the actual data, the performance might be drastically different because of indexes.

  • Slicer mit Mehrfachauswahl: Standardmäßig erlauben Slicer nur eine einzige Auswahl.Multi select slicers: By default, slicers only allow a single selection to be made. Das Zulassen der Mehrfachauswahl in Filtern kann zu einigen Leistungsproblemen führen, da der Benutzer eine Reihe von Elementen im Slicer auswählt.Allowing multi-selection in filters can cause some performance issues, because the user selects a set of items in the slicer. Wenn der Benutzer z. B. die für ihn interessanten zehn Produkte auswählt, führt jede neue Auswahl dazu, dass Abfragen an die Quelle gesendet werden.For example, if the user selects the 10 products of interest, each new selection results in queries being sent to the source. Obwohl der Benutzer das nächste Element auswählen kann, bevor die Abfrage abgeschlossen ist, führt dieser Ansatz zu einer zusätzlichen Last für die zugrunde liegende Quelle.Although the user can select the next item before the query completes, this approach results in extra load on the underlying source.

  • Erwägen Sie, Summen in Visuals zu deaktivieren: Standardmäßig werden in Tabellen und Matrizen Summen und Teilsummen angezeigt.Consider switching off totals on visuals: By default, tables and matrices display totals and subtotals. In vielen Fällen müssen separate Abfragen an die zugrunde liegende Quelle gesendet werden, um die Werte für solche Summen abzurufen.In many cases, separate queries must be sent to the underlying source to obtain the values for such totals. Diese Tatsache gilt immer, wenn die Aggregation DistinctCount verwendet wird oder wenn DirectQuery über SAP BW oder SAP HANA verwendet wird.This fact applies whenever using DistinctCount aggregation, or in all cases when using DirectQuery over SAP BW or SAP HANA. Solche Summen sollten mithilfe des Bereichs Format deaktiviert werden.Such totals should be switched off by using the Format pane.

Maximale Anzahl von Verbindungsoptionen für DirectQueryMaximum number of connections option for DirectQuery

Sie können einstellen, wie viele Verbindungen für jede zugrunde liegende Datenquelle von DirectQuery maximal geöffnet werden können, wodurch gesteuert wird, wie viele Abfragen gleichzeitig an jede Datenquelle gesendet werden.You can set the maximum number of connections DirectQuery opens for each underlying data source, which controls the number of queries concurrently sent to each data source.

DirectQuery öffnet standardmäßig eine maximale Anzahl von zehn gleichzeitigen Verbindungen.DirectQuery opens a default maximum number of 10 concurrent connections. Sie können die maximale Anzahl für die aktuelle Datei in Power BI Desktop ändern.You can change the maximum number for the current file in Power BI Desktop. Öffnen Sie Datei > Optionen und Einstellungen > Optionen.Go to File > Options and Settings > Options. Wählen Sie im Abschnitt Aktuelle Datei im linken Fensterbereich die Option DirectQuery aus.In the Current File section in the left pane, select DirectQuery.

Festlegen der maximalen Anzahl von DirectQuery-Verbindungen

Die Einstellung ist nur aktiviert, wenn mindestens eine DirectQuery-Quelle im aktuellen Bericht vorhanden ist.The setting is only enabled when there's at least one DirectQuery source in the current report. Der Wert gilt für alle DirectQuery-Quellen sowie für alle neuen DirectQuery-Quellen, die dem gleichen Bericht hinzugefügt werden.The value applies to all DirectQuery sources, and to any new DirectQuery sources added to the same report.

Die Erhöhung der Option Maximale Verbindungsanzahl pro Datenquelle stellt sicher, dass mehr Abfragen bis zu der angegebenen maximalen Anzahl an die zugrunde liegende Datenquelle gesendet werden können.Increasing Maximum connections per data source ensures more queries, up to the maximum number specified, can be sent to the underlying data source. Dieser Ansatz ist nützlich, wenn sich viele visuelle Elemente auf einer einzelnen Seite befinden oder viele Benutzer gleichzeitig auf einen Bericht zugreifen.This approach is useful when many visuals are on a single page, or many users access a report at the same time. Sobald die maximale Anzahl von Verbindungen erreicht ist, werden weitere Abfragen in die Warteschlange gestellt, bis eine Verbindung verfügbar wird.Once the maximum number of connections is reached, further queries are queued until a connection becomes available. Ein Erhöhen dieses Grenzwerts führt zu mehr Last auf der zugrunde liegenden Quelle. Daher ist nicht garantiert, dass durch die Einstellung die Gesamtleistung verbessert wird.Increasing this limit does result in more load on the underlying source, so the setting isn't guaranteed to improve overall performance.

Sobald ein Bericht veröffentlicht wird, hängt die maximale Anzahl der gleichzeitig an die zugrunde liegende Datenquelle gesendeten Abfragen ebenfalls von festen Grenzwerten ab.Once a report is published, the maximum number of concurrent queries sent to the underlying data source also depend upon fixed limits. Die Grenzwerte hängen von der Zielumgebung ab, in der der Bericht veröffentlicht wird.The limits depend on the target environment to which the report is published. Unterschiedliche Umgebungen wie Power BI, Power BI Premium oder Power BI-Berichtsserver können unterschiedliche Grenzwerte erfordern.Different environments, such as Power BI, Power BI Premium, or Power BI Report Server, can impose different limits.

Diagnostizieren von LeistungsproblemenDiagnosing performance issues

Dieser Abschnitt beschreibt, wie Sie Leistungsprobleme diagnostizieren oder weitere Informationen darüber erhalten können, wie Berichte optimiert werden.This section describes how to diagnose performance issues, or how to get more detailed information to allow the reports to be optimized.

Es wird empfohlen, die Diagnose von Leistungsproblemen im Power BI Desktop und nicht im Power BI-Dienst zu starten.We recommended that you start diagnosis of performance issues in Power BI Desktop, rather than in the Power BI service. Leistungsprobleme basieren oft auf der Leistung der zugrunde liegenden Quelle.Performance issues are often based on the performance of the underlying source. In der stärker isolierten Umgebung von Power BI Desktop können Sie Probleme leichter identifizieren und diagnostizieren.You can more easily identify and diagnose issues in the more isolated environment of Power BI Desktop. Dieser Ansatz verzichtet anfänglich auf bestimmte Komponenten wie das Power BI-Gateway.This approach initially eliminates certain components, such as the Power BI gateway. Wenn die Leistungsprobleme im Power BI Desktop nicht vorhanden sind, untersuchen Sie die Einzelheiten des Berichts im Power BI-Dienst.If the performance issues are absent from Power BI Desktop, investigate the specifics of the report in the Power BI service. Die Leistungsanalyse ist ein nützliches Tool zum Erkennen von Problemen in diesem Prozess.The performance analyzer is a useful tool for identifying issues throughout this process.

Es wird auch empfohlen, zu versuchen, zunächst Probleme eines visuellen Elements zu isolieren, anstatt viele visuelle Elemente auf einer Seite.Similarly, we recommend to first try to isolate any issues to an individual visual, rather than many visuals on a page.

Nehmen wir an, die Schritte in den vorhergehenden Absätzen in diesem Abschnitt wurden bereits durchgeführt.Let's say the steps in the previous paragraphs in this section have been taken. Wir verfügen jetzt über ein einzelnes visuelles Element auf einer Seite in Power BI Desktop, das immer noch langsam ist.We now have a single visual on a page in Power BI Desktop that is still sluggish. Verwenden Sie die Leistungsanalyse, um die Abfragen zu bestimmen, die Power BI Desktop an die zugrunde liegende Quelle sendet.Use the performance analyzer to determine the queries that Power BI Desktop sends to the underlying source. Es ist auch möglich, Ablaufverfolgungen und Diagnoseinformationen anzuzeigen, sofern solche von der zugrunde liegenden Datenquelle ausgegeben wurden.It's also possible to view traces and diagnostic information that might be emitted by the underlying data source. Ablaufverfolgungen können auch nützliche Details darüber enthalten, wie die Abfrage ausgeführt wurde und wie sie verbessert werden kann.Traces might also contain useful details of how the query was executed, and how it can be improved.

Darüber hinaus ist es möglich, die Abfragen, die von Power BI zusammen mit den Ausführungszeiten gesendet wurden, anzuzeigen, auch wenn keine Ablaufverfolgungen vorhanden sind, so wie im nächsten Abschnitt beschrieben.Further, even in the absence of such traces from the source, it's possible to view the queries sent by Power BI, along with their execution times, as described in the next section.

Bestimmen der Abfragen von Power BI DesktopDetermining the queries sent by Power BI Desktop

Standardmäßig protokolliert Power BI Desktop während einer gegebenen Sitzung Ereignisse in einer Ablaufverfolgungsdatei mit dem Namen FlightRecorderCurrent.trc.By default, Power BI Desktop logs events during a given session to a trace file called FlightRecorderCurrent.trc.

Bei einigen DirectQuery-Quellen enthält dieses Protokoll alle Abfragen, die an die zugrunde liegende Datenquelle gesendet wurden.For some DirectQuery sources, this log includes all queries sent to the underlying data source. Die übrigen DirectQuery-Quellen werden zukünftig einbezogen.The remaining DirectQuery sources will be included in the future. Die folgenden Quellen senden Abfragen an das Protokoll:The following sources send queries to the log:

  • SQL ServerSQL Server
  • Azure SQL-DatenbankAzure SQL Database
  • Azure SQL Data WarehouseAzure SQL Data warehouse
  • OracleOracle
  • TeradataTeradata
  • SAP HANASAP HANA

Sie finden die Ablaufverfolgungsdatei im AppData-Ordner für den aktuellen Benutzer:The trace file can be found in the AppData folder for the current user:

<User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces<User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces

Wählen Sie zum Abrufen dieses Ordners in Power BI Desktop Datei > Optionen und Einstellungen > Optionen und dann Diagnose aus.To get to this folder, in Power BI Desktop, select File > Options and settings > Options, and then select Diagnostics. Das folgende Dialogfeld wird angezeigt:The following dialog appears:

Ein Link zum Öffnen des Ordners „Traces“

Wenn Sie auf Ordner mit Absturzabbild/Überwachungen öffnen klicken, wird unter Diagnoseoptionen der folgende Ordner geöffnet: <User>\AppData\Local\Microsoft\Power BI Desktop\Traces.When you select Open crash dump/traces folder, under Diagnostic Options, the following folder opens: <User>\AppData\Local\Microsoft\Power BI Desktop\Traces.

Beim Navigieren zum übergeordneten Ordner des Ordners wird der Ordner angezeigt, der AnalysisServicesWorkspaces enthält, die einen Arbeitsbereichsordner für jede offene Instanz von Power BI Desktop enthält.Navigating to that folder's parent folder displays the folder containing AnalysisServicesWorkspaces, which will contain one workspace folder for every open instance of Power BI Desktop. Diese Ordner werden mit einem Integersuffix bezeichnet, z. B. AnalysisServicesWorkspace2058279583.These folders are named with an integer suffix, such as AnalysisServicesWorkspace2058279583.

Innerhalb dieses Ordners befindet sich der Ordner \Data.Inside that folder is a \Data folder. Er enthält die Ablaufverfolgungsdatei FlightRecorderCurrent.trc für die aktuelle Power BI-Sitzung.It contains the trace file FlightRecorderCurrent.trc for the current Power BI session. Der entsprechende Arbeitsbereichsordner wird gelöscht, wenn die zugehörige Power BI Desktop-Sitzung endet.The corresponding workspace folder is deleted when the associated Power BI Desktop session ends.

Die Ablaufverfolgungsdateien können mit dem Tool SQL Server Profiler gelesen werden.The trace files can be read using the SQL Server Profiler tool. Sie erhalten es als Teil des kostenlosen Downloads von SQL Server Management Studio.Get it as part of the free download SQL Server Management Studio.

Nachdem Sie SQL Server Management Studio heruntergeladen und installiert haben, führen Sie den SQL Server Profiler aus.Once you download and install SQL Server Management Studio, run SQL Server Profiler.

SQL Server Profiler

Um die Ablaufverfolgungsdatei zu öffnen, gehen Sie folgendermaßen vor:To open the trace file, take the following steps:

  1. Wählen Sie in SQL Server Profiler Datei > Öffnen > Ablaufverfolgungsdatei aus.In SQL Server Profiler, select File > Open > Trace file.

  2. Geben Sie den Pfad zur Ablaufverfolgungsdatei für die aktuell geöffnete Power BI-Sitzung ein, z.B.: C:\Benutzer<user>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces\AnalysisServicesWorkspace2058279583\Data.Enter the path to the trace file for the currently open Power BI session, such as: C:\Users<user>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces\AnalysisServicesWorkspace2058279583\Data.

  3. Öffnen Sie FlightRecorderCurrent.trc.Open FlightRecorderCurrent.trc.

Es werden alle Ereignisse aus der aktuellen Sitzung angezeigt.All events from the current session are displayed. Ein kommentiertes Beispiel ist hier dargestellt, das Gruppen von Ereignissen markiert.An annotated example is shown here, which highlights groups of events. Jede Gruppe verfügt über folgende Ereignisse:Each group has the following events:

  • Ein Ereignis für Query Begin und Query End, das den Beginn und das Ende einer DAX-Abfrage darstellt, die von der Benutzeroberfläche generiert wird, z. B. von einem visuellen Element oder durch Auffüllen einer Liste von Werten in der Filterbenutzeroberfläche.A Query Begin and Query End event, which represent the start and end of a DAX query generated by the UI, for example, from a visual, or from populating a list of values in the filter UI.
  • Ein oder mehrere Paare von Ereignissen für DirectQuery Begin und DirectQuery End stellen eine an die zugrunde liegende Datenquelle gesendete Abfrage als Teil der Auswertung der DAX-Abfrage dar.One or more pairs of DirectQuery Begin and DirectQuery End events, which represent a query sent to the underlying data source, as part of evaluating the DAX query.

Mehrere DAX-Abfragen können parallel ausgeführt werden, damit sich Ereignisse aus verschiedenen Gruppen überlappen können.Multiple DAX queries can run in parallel, so events from different groups can be interleaved. Der Wert der ActivityID kann verwendet werden, um zu bestimmen, welche Ereignisse zur selben Gruppe gehören.The value of the ActivityID can be used to determine which events belong to the same group.

SQL Server Profiler mit Ereignissen für den Abfragebeginn und das Abfrageende

Andere interessante Spalten sind die folgenden:Other columns of interest are as follows:

  • TextData: Die Textdetails des Ereignisses.TextData: The textual detail of the event. Bei Query Begin/End-Ereignissen ist das Detail die DAX-Abfrage.For Query Begin/End events, the detail is the DAX query. Bei DirectQuery Begin/End-Ereignissen ist das Detail die SQL-Abfrage, die an die zugrunde liegende Quelle gesendet wird.For DirectQuery Begin/End events, the detail is the SQL query sent to the underlying source. Die Daten von TextData werden für das aktuell ausgewählte Ereignis auch im unteren Bereich angezeigt.The TextData for the currently selected event is also displayed in the region at the bottom.
  • EndTime: Die Zeit, zu der das Ereignis beendet wurde.EndTime: The time when the event completed.
  • Duration: Die Dauer in Millisekunden, die zur Ausführung der DAX- oder SQL-Abfrage benötigt wird.Duration: The duration, in milliseconds, taken to execute the DAX or SQL query.
  • Error: Gibt an, ob ein Fehler aufgetreten ist. In diesem Fall wird das Ergebnis auch rot angezeigt.Error: Indicates if an error occurred, in which case the event is also displayed in red.

In der Abbildung oben wurden einige weniger relevante Spalten verschmälert, damit andere Spalten einfacher gelesen werden können.In the image above, some of the less interesting columns have been narrowed, to allow other columns to be seen more easily.

Wir empfehlen den folgenden Ansatz für die Erfassung einer Ablaufverfolgung, um die Diagnose eines potenziellen Leistungsproblems zu erleichtern:We recommend the following approach to capturing a trace to help diagnose a potential performance issue:

  • Öffnen Sie eine einzelne Power BI Desktop-Sitzung zur Vermeidung von Verwechslungen von mehreren Arbeitsbereichsordnern.Open a single Power BI Desktop session, to avoid the confusion of multiple workspace folders.
  • Führen Sie die interessanten Aktionen in Power BI Desktop aus.Do the set of actions of interest in Power BI Desktop. Schließen Sie einige zusätzliche Aktionen mit ein, um sicherzustellen, dass die interessanten Ereignisse in die Ablaufverfolgungsdatei geleert werden.Include a few additional actions, to ensure that the events of interest are flushed into the trace file.
  • Öffnen Sie den SQL Server Profiler, und untersuchen Sie die Ablaufverfolgung, so wie vorher beschrieben.Open SQL Server Profiler and examine the trace, as described previously. Denken Sie daran, dass beim Schließen von Power BI Desktop die Ablaufverfolgungsdatei gelöscht wird.Remember that closing Power BI Desktop deletes the trace file. Auch weitere Aktionen in Power BI Desktop werden nicht sofort angezeigt.Also, further actions in Power BI Desktop don't immediately appear. Die Ablaufverfolgungsdatei sollte geschlossen und wieder geöffnet werden, um die neuen Ereignisse anzuzeigen.The trace file should be closed and reopened to see the new events.
  • Halten Sie einzelne Sitzungen relativ klein, vielleicht zehn Sekunden mit Aktionen, nicht Hunderte Sekunden.Keep individual sessions reasonably small, perhaps 10 seconds of actions, not hundreds. Dieser Ansatz erleichtert die Interpretation der Ablaufverfolgungsdatei.This approach makes it easier to interpret the trace file. Es gibt auch einen Grenzwert für die Größe der Ablaufverfolgungsdatei.There's also a limit on the size of the trace file. Bei langen Sitzungen besteht die Möglichkeit, dass die frühen Ereignisse gelöscht werden.For long sessions, there's a chance of early events being dropped.

Grundlegendes zur Form der Abfrage, die von Power BI Desktop gesendet wirdUnderstanding the form of query sent by Power BI Desktop

Die Allgemeine Form von Abfragen, die durch Power BI Desktop gesendet werden, verwendet Unterabfragen für alle referenzierten Tabellen.The general format of queries created and sent by Power BI Desktop use subselects for each of the tables referenced. Die Abfrage des Abfrage-Editors definiert den untergeordneten SELECT-Ausdruck.The Query Editor query defines the subselect. Nehmen wir z.B. an, dass die folgenden TPC-DS-Tabellen in SQL Server vorhanden sind:For example, assume the following TPC-DS tables in SQL Server:

TPC-DS-Tabellen in SQL Server

Bedenken Sie die folgende Abfrage:Consider the following query:

Beispielabfrage

Diese Abfrage ergibt folgendes visuelles Element:That query results in the following visual:

Visuelles Ergebnis einer Abfrage

Wenn Sie dieses visuelle Element aktualisieren, ergibt dies eine SQL-Abfrage, die hier gezeigt wird.Refreshing that visual will result in the SQL query shown here. Wie Sie erkennen können, gibt es drei untergeordnete SELECT-Ausdrücke für Web Sales, Item und Date_dim, die jeweils alle Spalten in der jeweiligen Tabelle zurückgeben, obwohl das visuelle Element tatsächlich nur auf vier Spalten verweist.As you can tell, there are three subselects for Web Sales, Item, and Date_dim, that each return all the columns on the respective table, even though only four columns are actually referenced by the visual. Diese Abfragen in den untergeordneten schattierten SELECT-Ausdrücken sind genau die Ergebnisse der Abfragen, die im Abfrage-Editor definiert sind.These queries in the subselects that are shaded are exactly the result of the queries defined in Query Editor. Die Verwendung untergeordneter SELECT-Ausdrücke beeinträchtigt die Leistung nicht für Datenquellen, die bisher für DirectQuery unterstützt wurden.Use of subselects in this manner hasn't been found to impact performance for the data sources so far supported for DirectQuery. Datenquellen wie SQL Server optimieren die Verweise auf die anderen Spalten.Data sources like SQL Server optimize away the references to the other columns.

Power BI verwendet dieses Muster, da die verwendete SQL-Abfrage direkt vom Analytiker zur Verfügung gestellt werden kann.Power BI employs this pattern because the SQL query used can be provided directly by the analyst. Es wird „wie vorgesehen“ verwendet, ohne dass versucht wird, es neu zu schreiben.It's used "as provided", without an attempt to rewrite it.

Wie vorgesehen verwendete SQL-Abfrage

Nächste SchritteNext steps

Dieser Artikel beschreibt Aspekte von DirectQuery, die für alle Datenquellen üblich sind.This article describes aspects of DirectQuery that are common across all data sources. Es gibt bestimmte Details, die spezifisch für einzelne Datenquellen sind.There are certain details that are specific to individual sources. Informationen finden Sie in den folgenden Artikeln, die bestimmte Quellen abdecken:See the following articles covering specific sources:

Weitere Informationen zu DirectQuery finden Sie in der folgenden Ressource:For more information about DirectQuery, see the following resource: