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.


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst