Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

In diesem Tutorial erfahren Sie, was ein Datencache ist und warum er wichtig ist. Ein Datencache speichert Datenbits, die für die zukünftige Verwendung wertvoll sein könnten.

Wenn Sie bei einer zukünftigen Maßnahme oder Aktion dieselben Informationen benötigen, stellt der Datencache die benötigten Informationen bereit. Es entfällt, dass das System dieselben Datensätze erneut abrufen muss.

In diesem Tutorial gehen Sie acht wichtige Dinge durch, die Sie beim Umgang mit Datencaches in LuckyTemplates beachten sollten:

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Inhaltsverzeichnis

Definition und Zweck eines Datencaches

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Ein Datencache ist eine temporäre Tabelle, die von der Speicher-Engine im Speicher erstellt wird . Diese temporäre Tabelle wird an die Formel-Engine gesendet, die dann diese Informationen durchläuft und nach der Abfrage verschiedene Vorgänge ausführt.

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Die gesamte Kommunikation zwischen der Formel-Engine und der Speicher-Engine erfolgt immer in Form eines Datencaches. Die Formel-Engine bereitet die Abfragepläne vor und sendet dann die Anweisungen an die Speicher-Engine. Die Speicher-Engine sendet es dann zurück an die Formel-Engine, die das Ergebnis an den Benutzer zurückgibt.

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Da die Formel-Engine keinen direkten Zugriff auf die in DirectQuery und VertiPaq gespeicherten Daten hat, ist sie für die Datencaches auf die Speicher-Engine angewiesen.

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Der von der Speicher-Engine gesendete Datencache liegt in einem unkomprimierten Format vor. Dies bedeutet, dass die Größe der im Vertipaq-Tool gespeicherten Daten reduziert werden kann.

Wenn es jedoch an der Zeit ist, den Datencache wieder an die Formel-Engine zurückzugeben, kann er nicht komprimiert werden, da die Formel-Engine nicht mit komprimierten Datensätzen funktioniert.

Welche Auswirkungen hat ein Datencache auf den RAM?

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Wenn die Speicher-Engine große Mengen an Daten-Caches sendet, nimmt dies viel Platz im RAM der Software in Anspruch. Außerdem wird es viel Zeit in Anspruch nehmen, bis die Formel-Engine Iterationen durchführt und ein Ergebnis liefert.

Wenn Sie also Ihren DAX-Code schreiben, müssen Sie verstehen, dass er so geschrieben werden sollte, dass die Zeilen im Datencache minimiert werden.

Das beste Szenario wäre, die Anzahl der im Bild angezeigten Zeilen mit der Anzahl der im Datencache zurückgegebenen Zeilen abzugleichen.

Meistens ist es schwierig, die gleiche Anzahl an Zeilen zurückzugeben. In diesem Fall müssen Sie Ihren DAX-Code überprüfen und ihn so aufschlüsseln, dass der von der Speicher-Engine erzeugte Datencache optimiert wird.

Wie ein Datencache Abfragen optimiert

Nicht optimierte Funktionen

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Einige der Funktionen in der DAX-Sprache sind nicht für die Speicher-Engine optimiert. Um dies besser zu verstehen, schauen wir uns ein Beispiel an.

Beispielsweise können Sie in Ihrem Code anstelle von SUMMARIZE die Funktion verwenden . Die Funktionen SUMMARIZE und GROUPBY führen denselben Vorgang aus. Allerdings gibt es je nach Szenario deutliche Unterschiede.

Die GROUPBY-Funktion ist nicht für die Storage Engine optimiert. Wenn Sie die Funktion GROUPBY für eine Faktentabelle mit 12 Millionen Zeilen verwenden, wird ein Datencache mit der gleichen Anzahl an Zeilen erstellt. Diese kann zwischen 600 MB und 1 GB groß sein.

Diese Größe kann Ihren Arbeitsspeicher stark belasten. Verwenden Sie also anstelle von GROUPBY . Die SUMMARIZE-Funktion führt zu einer kleineren Datencachegröße. Sie können es mit GROUPBY als Funktion der obersten Ebene koppeln.

Reduzierte Wiederholungen

Wenn Sie Ihre DAX-Kennzahlen oder -Abfragen schreiben, müssen Sie sicherstellen, dass der hinter den Kulissen erstellte Code für die Speicher-Engine geeignet ist.

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Sie müssen Ihren DAX-Code so schreiben, dass ein Datencache entsteht, der auch in nachfolgenden Abfragen verwendet werden kann. Dies hat den Vorteil, dass die Speicher-Engine nicht einen separaten Scan mit VertiPaq durchführt , sondern prüft, ob bereits eine ähnliche Anfrage eingegangen ist.

Wenn dies zutrifft, bedeutet dies, dass der Datencache im Speicher verfügbar ist. Anstatt die Abfrage erneut zu scannen, gibt VertiPaq sie einfach aus dem Cache-Speicher an die Formel-Engine zurück.

Datencache: Was es ist und wie es zur Optimierung von Abfragen beiträgt

Wenn in Ihrer Speicher-Engine-Abfrage ein CALLBACKDATAID-Operator angezeigt wird , bedeutet dies, dass diese Abfragen nicht zwischengespeichert werden können. Falls eine ähnliche Anfrage an die Speicher-Engine gesendet wird, führt diese eine Wiederholung durch.

Daher muss VertiPaq die Formel-Engine aufrufen, um die Abfrage aufzulösen. Dadurch erhöht sich die Gesamtausführungszeit, da der Cache-Speicher in diesem Fall nicht genutzt werden kann.

Abschluss

Der Datencache ist Ihr bester Freund in der DAX-Sprache. Denken Sie daran, Ihren DAX-Code so zu schreiben, dass der Speicherplatz maximiert und die Anzahl der Iterationen des VertiPaq-Tools reduziert wird. Sie können den bereits von der Storage Engine erstellten Datencache wiederverwenden, um die Ausführungszeit der Abfrage zu verkürzen.


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.