Datencaches in einer DAX-Berechnung

In diesem Tutorial erfahren Sie, was Datencaches in einer DAX-Berechnung bewirken. Sie werden verstehen, wie sie mit den Formel- und Speicher-Engines zusammenarbeiten, um Antworten auf Ihre Fragen zu liefern.

Inhaltsverzeichnis

Was sind Datencaches?

Die Speicher-Engine interagiert mit der Formel-Engine in Form eines Datencaches.

Wenn Sie sich an die vorherigen Blogbeiträge zur DAX-Abfragestruktur erinnern, wissen Sie, dass die Formel-Engine Daten von der Speicher-Engine anfordert. Letzterer geht dann zur Datenbank, ruft verschiedene Datentypen ab und gibt sie dann in Form eines Datencaches an die Formel-Engine zurück.

Die Speicher-Engine kann einfache Berechnungen und Aggregationen durchführen, was sie schneller macht. Es bietet außerdem Parallelität, die mehrere Datencaches gleichzeitig füllen kann. Es kann einige Zeit dauern, bis eine Anfrage einer Speicher-Engine eine Antwort generiert. Wenn Sie jedoch alle verschiedenen Speicher-Engine-Abfragen addieren, sind die Ergebnisse nicht gleich, da mehr als ein Datencache gefüllt wird.

Die Formel-Engine hingegen arbeitet bei komplexen Abfragen. Da es sich um eine Single-Threaded-Engine handelt, kann sie nur einen endgültigen konsolidierten Datencache verwenden. Es beginnt mit der Arbeit am Datencache, sobald alle Anforderungen von der Speicher-Engine erfüllt sind.

Wenn die Anfrage der Formel-Engine genau mit der vorherigen Anfrage übereinstimmt, wird der zuvor zurückgegebene Cache erneut verwendet. Die Speicher-Engine ist intelligent genug, um denselben Datencache zurückzugeben, wenn sie dieselbe Anforderung erhält. Dadurch wird die Leistung des DAX beschleunigt, da die Daten bereits zwischengespeichert sind.

Wenn Sie eine Messung ausführen, ist es wichtig, sie gegen einen Cold-Cache auszuführen. Vermeiden Sie es immer, Ihre Abfragen im Warm-Cache auszuführen. Ein warmer Cache bedeutet, dass der Datencache der Speicher-Engine bereits gebildet und zur Rückgabe bereit ist.

Was sind die Hauptmerkmale?

Datencaches sind im Speicher materialisierte Tabellen, die Zeit und RAM verbrauchen. Bedenken Sie immer, dass die Materialisierung so gering wie möglich sein sollte.

Ein weiteres wichtiges Merkmal ist, dass diese Caches unkomprimiert sind . Sobald die Daten die Speicher-Engine verlassen und an die Formel-Engine gesendet werden, wird der Datencache zu einer unkomprimierten vollständigen Tabelle im Speicher. Diese Ausführung ist viel langsamer als eine Peer-Storage-Engine-Anfrage, die sich vollständig im Speicher befindet und komprimiert ist.

Es gibt kein Problem mit der Formel-Engine; Sie müssen nur die Speicher-Engine dazu bringen, die Arbeit so weit wie möglich zu erledigen.

Datencaches sind ebenfalls temporär. Sie existieren eine Weile und dann sind sie weg. Auch wenn sie im Gedächtnis materialisiert sind, sind sie nicht dauerhaft und werden daher gelöscht.

Wo finde ich Daten-Caches?

Sie finden diese Informationen in der Spalte „Datensätze“ der physischen Abfragepläne und in den Server-Timings von DAX Studio in der Spalte „Zeilen“ . Es zeigt Ihnen, wie viele Zeilen von der Speicher-Engine erstellt und an die Formel-Engine gesendet werden.

Wenn Sie bestimmte Tests der Server-Timings durchführen, werden Sie feststellen, dass die Zeilenanzahl möglicherweise etwas abweicht. Dies ist nur ein Richtwert dafür, wie viele Zeilen Sie hochziehen.

Bei Daten-Caches ist vor allem zu beachten, dass die Anzahl der materialisierten Zeilen möglichst genau der Anzahl der für die Ausgabe benötigten Zeilen entsprechen sollte. Wenn es einen großen Unterschied in der Anzahl der Zeilen gibt, bedeutet dies, dass der Bestellvorgang deaktiviert ist.

Wenn die Anzahl der materialisierten Zeilen gleich der Anzahl der für die Ausgabe benötigten Zeilen ist, spricht man von später Materialisierung . Wenn jedoch die Anzahl der materialisierten Zeilen größer ist als die Anzahl der benötigten Zeilen, spricht man von einer frühen Materialisierung . Da es sich um unkomprimierte Daten handelt, sollten Sie nicht zulassen, dass beide Engines sie materialisieren, da dies die Leistung von DAX verlangsamt.

Dies ist ein Beispiel für eine frühe Materialisierung:

Datencaches in einer DAX-Berechnung

Im physischen Abfrageplan können Sie sehen, dass 25 Millionen Zeilen in der Datensatzspalte abgerufen werden. Die Beispielabfrage benötigt jedoch keine 25 Millionen Ausgabezeilen. Das bedeutet, dass die Abfrage zu viele Zeilen als nötig abgerufen hat.

Wenn Sie sich die Server-Timings ansehen, werden Sie feststellen, dass in der Zeilenspalte die gleiche Anzahl an Zeilen abgerufen wird.

Datencaches in einer DAX-Berechnung

In den SE-CPU- Visualisierungen sehen Sie eine Zahl, wenn Ihre Abfragen Parallelen aufweisen. Da dieses Beispiel keine hat, wurde 0 angezeigt.

Datencaches in einer DAX-Berechnung


Was ist DAX Studio in LuckyTemplates Desktop?
DAX-Tutorial: Kontext und die Berechnungs-Engine
VertiPaq Analyzer in DAX Studio | LuckyTemplates-Tutorial

Abschluss

Ein DAX mit langsamer Leistung kann bedeuten, dass Ihre Abfrage unnötige Caches abruft, damit Ihre Engines funktionieren. Datencaches sind für die Geschwindigkeit und Genauigkeit Ihres DAX verantwortlich, da die Engines auf ihnen arbeiten, um Antworten für verschiedene Anfragen zu generieren. Für eine schnellere DAX-Leistung können Sie dieses Problem lösen, indem Sie Ihr Datenmodell und Ihre DAX-Kennzahlen richtig aufbauen.

Leave a Comment

Streudiagramm-Visualisierungen mit Charticulator

Streudiagramm-Visualisierungen mit Charticulator

In diesem Tutorial erfahren Sie, wie Sie mit Charticulator eine Streudiagramm-Visualisierung für Ihren LuckyTemplates-Bericht erstellen und entwerfen.

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

Erfahren Sie, wie Sie ein PowerApps-Suchfeld von Grund auf erstellen und es an das Gesamtthema Ihrer App anpassen.

Power Automate String-Funktionen: Substring und IndexOf

Power Automate String-Funktionen: Substring und IndexOf

Erlernen Sie ganz einfach zwei komplizierte Power Automate String-Funktionen, die in Microsoft Flows verwendet werden können – die Funktionen substring und indexOf.

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Dieses Tutorial konzentriert sich auf die Power Query M-Funktion „number.mod“, um ein abwechselndes 0-1-Muster in der Datumstabelle zu erstellen.

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

In diesem Tutorial führe ich eine Prognosetechnik durch, bei der ich meine tatsächlichen Ergebnisse mit meinen Prognosen vergleiche und sie kumulativ betrachte.

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

In diesem Blog erfahren Sie, wie Sie mit Power Automate E-Mail-Anhänge automatisch in SharePoint speichern und E-Mails anschließend löschen.

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Erfahren Sie, wie die Do Until Schleifensteuerung in Power Automate funktioniert und welche Schritte zur Implementierung erforderlich sind.

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

In diesem Tutorial erfahren Sie, wie Sie mithilfe der ALLSELECTED-Funktion einen dynamischen gleitenden Durchschnitt in LuckyTemplates berechnen können.

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Durch diesen Artikel erhalten wir ein klares und besseres Verständnis für die dynamische Berechnung einer laufenden oder kumulativen Gesamtsumme in LuckyTemplates.

Power Automate auf jede Aktion in Workflows anwenden

Power Automate auf jede Aktion in Workflows anwenden

Erfahren und verstehen Sie die Bedeutung und ordnungsgemäße Verwendung der Power Automate-Aktionssteuerung „Auf jede anwenden“ in unseren Microsoft-Workflows.