In-Memory vs. Live-Query Abfragen

Thomas Dierl - 19.11.2020

SSAS: In-Memory vs. Live-Query-Abfragen

Für tabulare Modelle kennt die SQL Analysis Services (SSAS) verschiedene Abfrage-Modi. Welche? Das erfahren Sie in diesem Artikel, Vor- und Nachteile inklusive. So entscheiden Sie einfacher, welche Art von Abfrage am besten zu Ihren Anforderungen passt.

Abfrage-Modi bei SSAS

  • DirectQuery
  • In-Memory
  • In-Memory with DirectQuery
  • DirectQuery with In-Memory

Der Query Mode definiert die Quelle, von der die Daten ausgewertet werden. Dies beeinflusst sowohl den Ressourcenverbrauch als auch die Geschwindigkeit, mit der die Daten bereitgestellt werden.

Die einzelnen Abfragen: Definitionen, Vor- & Nachteile

In-Memory

In-Memory Abfragen sind der Standard für die meisten Modelle. Dabei liegen alle Daten im Speicher, also direkt im SSAS.

Vorteile

  • sehr schnelle Berechnung von Measures
  • rasche Ausführung von weiteren Berechnungen

Nachteile

  • Aktualisierung nur dann, wenn von außen angestoßen (nicht live aus Datenquelle)
  • Daten aus dem Speicher gelangen nur auf die Platte, wenn der Server herunterfährt
  • Zeitfaktor: sowohl beim Runter- als auch Hochfahren dauert es, bis Daten im Speicher sind
  • ausreichend Speicherplatz notwendig, um Daten dort zu halten

DirectQuery

Bei DirectQuery bleiben die Daten direkt in der relationalen Quelldatenbank. Alle Abfragen und Berechnungen werden in SQL transformiert und am Quell-Server ausgeführt.

Vorteile

  • Verarbeitung auch solcher Daten, die mehr Speicher benötigen, als RAM vorhanden ist
  • Unterstützung des Servers mit SQL Boardmitteln (z.B. Indizes) bei Abfrage

Nachteile

  • keine Unterstützung von MDX-Abfragen (relevant v.a. bei direktem Zugriff auf Excel, da MDX dafür notwendig ist)
  • Anbindung von nur einer Datenbank möglich
  • keine Unterstützung von berechneten Spalten und einigen DAX-Funktionen
  • geringe Geschwindigkeit, da Daten jedes Mal neu laden

Hybrid-Modi

1. In-Memory with DirectQuery

Beim hybriden Modus “In-Memory with DirectQuery” entscheidet der Client selbst: Soll In-Memory oder DirectQuery die Abfrage bedienen? Default ist stets In-Memory.

2. DirectQuery with In-Memory

Auch hierbei handelt es sich um einen Hybrid. Allerdings ist der Default DirectQuery und der Client kann auf In-Memory umschalten.

Vorteil von Hybridmodi

Der große Vorteil von Hybridmodi ist die Anwendung von verschiedenen Konfigurationen. So fragen Sie beispielsweise für bestimmte Partitionen die Daten per In-Memory ab. Und für Daten einer anderen Partition derselben Tabelle wenden Sie Direct-Query an. Vor allem für Daten, die selten benötigt oder sehr häufig aktualisiert werden, ist Direct-Query von Vorteil.

Anmerkung: unterschiedliche Ergebnisse

Gleiche Abfrage, verschiedene Ergebnisse? Das ist möglich. Und zwar, wenn Sie unterschiedliche Abfragemodi verwenden. So können die Ergebnisse variieren, wenn Sie die gleiche Abfrage einmal per In-Memory, und einmal mittels Direct-Query Modus stellen.

Warum ist das so?

Die Datengrundlage ist unter Umständen eine andere. Das liegt daran, dass DirectQuery die Daten live aus der Datenquelle bezieht, In-Memory allerdings nicht.

Zusammenfassung

Wann ist also einer der beiden Basis-Modi, wann ein Hybdridmodus sinnvoll? Das hängt stark von folgenden beiden Punkten ab:

  • vorhandene Ressourcen
  • Anforderungen an Geschwindigkeit & Aktualität

Eine allgemeine Empfehlung ist demnach nicht möglich. Jeder Fall ist individuell.