Variablen zur Verbesserung der Leistung und zur Problembehandlung verwenden

Abgeschlossen

Sie können Variablen in Ihren DAX-Formeln verwenden, um so weniger komplexe und effizientere Berechnungen zu schreiben. Variablen werden von Entwicklern, die gerade mit Power BI Desktop anfangen, zu wenig genutzt, aber sie sind effektiv und Sie sollten sie verwenden, wann immer Sie können.

Bei manchen Ausdrücken werden viele geschachtelte Funktionen verwendet, und Ausdruckslogik wird wiederverwendet. Die Verarbeitungszeit dieser Ausdrücke ist länger, und sie sind schwierig zu lesen. Deshalb gestaltet sich auch das Troubleshooting schwieriger. Wenn Sie Variablen verwenden, können Sie die Verarbeitungszeit für Abfragen minimieren. Diese Änderung ist ein Schritt in die richtige Richtung, um die Leistung eines semantischen Modells zu optimieren.

Die Verwendung von Variablen in Ihrem semantischen Modell bietet die folgenden Vorteile:

  • Verbesserte Leistung – Variablen können Measures effizienter machen, da sie die Notwendigkeit für Power BI beseitigen, den gleichen Ausdruck mehrmals auszuwerten. Dieselben Ergebnisse einer Abfrage lassen sich so in der Hälfte der ursprünglichen Verarbeitungszeit erzielen.
  • Verbesserte Lesbarkeit – Variablen haben kurze und selbsterklärende Namen und werden anstelle von mehrdeutigen, aus mehreren Wörtern bestehenden Ausdrücken verwendet. Wenn Variablen verwendet werden, lassen sich Formeln für Sie vermutlich einfacher lesen und sind besser zu verstehen.
  • Einfacheres Debuggen – Sie können Variablen verwenden, um eine Formel zu debuggen und Ausdrücke zu testen. Dies ist besonders während des Troubleshootings hilfreich.
  • Reduzierte Komplexität – Variablen erfordern keine Verwendung von EARLIER‑ oder EARLIEST-Funktionen, die schwer zu verstehen sind. Diese Funktionen waren erforderlich, bevor Variablen eingeführt wurden, und sie wurden in komplexe Ausdrücke geschrieben, die neue Filterkontexte eingeführt haben. Da Sie nun Variablen anstelle dieser Funktionen verwenden können, können Sie weniger komplexe Formeln schreiben.

Variablen zur Leistungsverbesserung verbessern

In der folgenden Tabelle sehen Sie, wie Sie eine Variable verwenden können, um ein Measure effizienter zu gestalten. Dort wird eine Measuredefinition auf zwei verschiedene Arten angezeigt. Beachten Sie, dass die Formel den Ausdruck wiederholt, der denselben Zeitraum wie letztes Jahr berechnet, allerdings in zwei verschiedenen Weisen: Die erste Instanz verwendet die normale DAX-Berechnungsmethode. Die zweite verwendet Variablen in der Berechnung.

Die zweite Zeile der Tabelle zeigt die optimierte Measuredefinition. In dieser Definition wird das Schlüsselwort VAR verwendet, um eine Variable mit dem Namen SalesPriorYear einzuführen, und es wird ein Ausdruck verwendet, um dieser neuen Variablen das Ergebnis „gleicher Zeitraum des Vorjahres“ zuzuweisen. Anschließend wird die Variable zweimal in der Funktion DIVIDE verwendet.

Ohne Variable

Sales YoY Growth =
DIVIDE(
    ([Sales] - CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))),
    CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
)

Mit Variable

Sales YoY Growth =
VAR SalesPriorYear =
    CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesVariance =
    DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)
RETURN
    SalesVariance

In der ersten Measuredefinition ist die Formel ineffizient, da Power BI den gleichen Ausdruck zweimal auswerten muss. Die zweite Definition ist effizienter, da die Funktion PARALLELPERIOD dank der Variablen Power BI nur einmal ausgewertet werden muss.

Wenn Ihr semantisches Modell über mehrere Abfragen mit mehreren Measures verfügt, kann die Verwendung von Variablen die gesamte Verarbeitungszeit der Abfrage halbieren und die Gesamtleistung des semantischen Modells verbessern. Außerdem handelt es sich bei dieser Lösung um eine einfache. Denken Sie hierbei an die möglichen Einsparungen, wenn Formeln komplizierter werden, z. B. wenn Sie mit Prozentsätzen arbeiten und Gesamtsummen berechnet werden sollen.

Variablen zur Verbesserung der Lesbarkeit verbessern

Neben der verbesserten Leistung werden Sie vielleicht feststellen, wie die Verwendung von Variablen das Lesen Ihres Codes vereinfacht.

Wenn Variablen verwendet werden, gilt als Best Practice, beschreibende Namen für die Variablen zu verwenden. Im vorherigen Beispiel wird die Variable SalesPriorYear genannt, was eindeutig anzeigt, was die Variable berechnet. Betrachten Sie das Ergebnis der Verwendung einer Variablen mit dem Namen X, temp oder variable1: Der Zweck der Variablen wäre überhaupt nicht klar.

Die Verwendung klarer, prägnanter und aussagekräftiger Namen erleichtert Ihnen das Verständnis und die Dokumentation dessen, was Sie berechnen, und ist für andere Entwickler in Zukunft viel einfacher zu verwalten.

Variablen für die Problembehandlung mehrerer Schritte verwenden

Sie können Variablen verwenden, um das Debuggen einer Formel und Identifizieren von Problemen zu unterstützen. Variablen vereinfachen die Fehlersuche in Ihrer DAX-Berechnung, indem sie jede Variable separat auswerten und in der Klausel RETURN wieder aufrufen.

Im folgenden Beispiel testen Sie einen Ausdruck, der einer Variable zugewiesen ist. Verwenden Sie zum Debuggen eine Neuformulierung der Klausel RETURN, um die Variable zurückzugeben. Die Measuredefinition gibt nur die Variable SalesPriorYear zurück, da diese nach dem RETURN-Ausdruck steht.

Sales YoY Growth % =
VAR SalesPriorYear =  CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)  
RETURN SalesPriorYear%

Die Klausel RETURN gibt nur die Variable SalesPriorYear% zurück. Durch dieses Verfahren können Sie den Ausdruck wiederherstellen, sobald das Debuggen abgeschlossen ist. Außerdem vereinfacht es das Verständnis von Berechnungen, da die Komplexität des DAX-Codes abgeschwächt wird.