Freigeben über


Partitionen – Speichermodi und Verarbeitung von Partitionen

Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Der Speichermodus einer Partition wirkt sich auf die Abfrage- und Verarbeitungsleistung, die Speicheranforderungen und die Speicherorte der Partition, der übergeordneten Measuregruppe und des übergeordneten Cubes aus. Die Entscheidung für einen Speichermodus wirkt sich zudem auf die Verarbeitungsmöglichkeiten aus.

Für eine Partition kann einer von drei grundlegenden Speichermodi verwendet werden:

  • Mehrdimensionale OLAP (MOLAP)

  • Relationale OLAP (ROLAP)

  • Hybride OLAP (HOLAP)

Microsoft SQL Server SQL Server Analysis Services unterstützt alle drei grundlegenden Speichermodi. Zudem wird die proaktive Zwischenspeicherung unterstützt. Damit können die Merkmale der ROLAP-Speicherung und der MOLAP-Speicherung sowohl für die Unmittelbarkeit der Daten als auch für die Abfrageleistung kombiniert werden. Weitere Informationen finden Sie unter Proaktives Zwischenspeichern (Partitionen).

MOLAP

Der MOLAP-Speichermodus bewirkt, dass die Aggregationen der Partition und eine Kopie ihrer Quelldaten in einer mehrdimensionalen Struktur in SQL Server Analysis Services gespeichert werden, wenn die Partition verarbeitet wird. Diese MOLAP-Struktur ist stark optimiert, um die Abfrageleistung zu maximieren. Der Speicherort kann sich auf dem Computer befinden, auf dem die Partition definiert ist, oder auf einem anderen Computer, auf dem SQL Server Analysis Services ausgeführt wird. Da sich eine Kopie der Quelldaten in der mehrdimensionalen Struktur befindet, können Abfragen aufgelöst werden, ohne auf die Quelldaten der Partition zuzugreifen. Durch das Verwenden von Aggregationen können die Antwortzeiten für Abfragen erheblich verbessert werden. Die Daten in der MOLAP-Struktur der Partition sind nur so aktuell wie am Datum, an dem die letzte Verarbeitung der Partition erfolgte.

Da sich die Quelldaten ändern, müssen Objekte mit MOLAP-Speicherung regelmäßig verarbeitet werden, um diese Änderungen aufzunehmen und sie den Benutzern zur Verfügung zu stellen. Durch die Verarbeitung werden die Daten in der MOLAP-Struktur entweder vollständig oder inkrementell aktualisiert. Die Zeit zwischen zwei Verarbeitungsvorgängen bewirkt eine Latenzzeit, während derer Daten in OLAP-Objekten möglicherweise nicht mit den Quelldaten übereinstimmen. Sie können Objekte mit MOLAP-Speicherung inkrementell oder vollständig aktualisieren, ohne die Partition oder den Cube offline schalten zu müssen. In bestimmten Situationen kann es jedoch erforderlich sein, einen Cube offline zu schalten, um bestimmte Strukturänderungen an OLAP-Objekten zu verarbeiten. Sie können die zum Aktualisieren der MOLAP-Speicherung erforderliche Ausfallzeit minimieren, indem Sie Cubes auf einem Stagingserver aktualisieren und verarbeiten und die verarbeiteten Objekte mithilfe der Datenbanksynchronisierung auf den Produktionsserver kopieren. Sie können auch die proaktive Zwischenspeicherung verwenden, um die Latenzzeit zu minimieren und die Verfügbarkeit zu optimieren und dabei gleichzeitig die Leistungsvorteile der MOLAP-Speicherung weiter zu nutzen. Weitere Informationen finden Sie unter Proaktives Zwischenspeichern (Partitionen),Synchronisieren von Analysis Services-Datenbanken und Verarbeiten eines mehrdimensionalen Modells (Analysis Services).

ROLAP

Der Speichermodus ROLAP bewirkt, dass die Aggregationen der Partition in indizierten Sichten in der relationalen Datenbank gespeichert werden, die in den Quelldaten der Partition angegeben wurde. Im Gegensatz zum MOLAP-Speichermodus bewirkt ROLAP nicht, dass eine Kopie der Quelldaten in den SQL Server Analysis Services Datenordnern gespeichert wird. Wenn Ergebnisse nicht aus dem Abfragecache übernommen werden können, werden Abfragen stattdessen mithilfe der indizierten Sichten in der Datenquelle beantwortet. Beim ROLAP-Speicher erfolgt die Beantwortung von Abfragen i. A. langsamer als bei Verwendung der Speichermodi MOLAP oder HOLAP. Auch die Verarbeitungszeit ist bei ROLAP üblicherweise länger. ROLAP ermöglicht den Benutzern jedoch das Anzeigen von Daten in Echtzeit und kann dazu beitragen, Speicherplatz zu sparen, wenn Sie mit großen Datasets arbeiten, die nur unregelmäßig abgefragt werden, z. B. mit reinen Vergangenheitsdaten.

Hinweis

Bei Verwendung von ROLAP können SQL Server Analysis Services falsche Informationen im Zusammenhang mit dem unbekannten Element zurückgeben, wenn eine Verknüpfung mit einer GROUP BY-Klausel kombiniert wird. SQL Server Analysis Services beseitigt relationale Integritätsfehler, anstatt den unbekannten Memberwert zurückzugeben.

Wenn eine Partition den ROLAP-Speichermodus verwendet und ihre Quelldaten in SQL Server Datenbank-Engine gespeichert werden, versucht SQL Server Analysis Services, indizierte Ansichten zu erstellen, die Aggregationen der Partition enthalten. Wenn SQL Server Analysis Services keine indizierten Ansichten erstellen können, werden keine Aggregationstabellen erstellt. Obwohl SQL Server Analysis Services die Sitzungsanforderungen zum Erstellen von indizierten Ansichten in SQL Server Datenbank-Engine übernimmt, müssen die folgenden Bedingungen von der ROLAP-Partition und den Tabellen in ihrem Schema erfüllt werden, damit SQL Server Analysis Services indizierte Ansichten für Aggregationen erstellen können:

  • Die Partition darf keine Measures enthalten, die die Aggregatfunktionen Min oder Max verwenden.

  • Jede Tabelle im Schema der ROLAP-Partition darf nur einmal verwendet werden. Das Schema darf beispielsweise nicht [dbo].[address] AS "Customer Address" und [dbo].[address] AS "SalesRep Address" enthalten.

  • Jede Tabelle muss eine Tabelle sein, keine Sicht.

  • Alle Tabellennamen im Schema der Partition müssen mit dem Besitzernamen gekennzeichnet sein, z. B. [dbo].[customer].

  • Alle Tabellen im Schema der Partition müssen denselben Besitzer aufweisen. Sie können beispielsweise keine FROM-Klausel verwenden, die auf die Tabellen in [tk].[customer], [john].[store] und [dave].[sales_fact_2004] verweist.

  • Die Quellspalten der Measures der Partition dürfen keine NULL-Werte zulassen.

  • Beim Erstellen aller in der Sicht verwendeten Tabellen müssen die folgenden Optionen auf ON festgelegt sein:

    • ANSI_NULLS

    • QUOTED_IDENTIFIER

  • Die Gesamtgröße des Indexschlüssels in SQL Server Datenbank-Engine darf 900 Bytes nicht überschreiten. SQL Server Datenbank-Engine bestätigt diese Bedingung basierend auf den Schlüsselspalten mit fester Länge, wenn die CREATE INDEX-Anweisung verarbeitet wird. Wenn jedoch Spalten mit variabler Länge im Indexschlüssel vorhanden sind, gibt SQL Server Datenbank-Engine diese Bedingung auch für jedes Update der Basistabellen an. Da unterschiedliche Aggregationen unterschiedliche Sichtdefinitionen aufweisen, kann die ROLAP-Verarbeitung mithilfe indizierter Sichten je nach Aggregationsentwurf erfolgreich verlaufen oder fehlschlagen.

  • Für die Sitzung, in der die indizierte Sicht erstellt wird, müssen die folgenden Optionen den Wert ON aufweisen: ARITHABORT, CONCAT_NULL_YEILDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING und ANSI_WARNING. Diese Einstellung kann in SQL Server Management Studio vorgenommen werden.

  • Für die Sitzung, in der die indizierte Sicht erstellt wird, muss die folgende Option den Wert OFF aufweisen: NUMERIC_ROUNDABORT. Diese Einstellung kann in SQL Server Management Studio vorgenommen werden.

HOLAP

Der Speichermodus HOLAP kombiniert Attribute von MOLAP und ROLAP. Wie MOLAP bewirkt HOLAP, dass die Aggregationen der Partition in einer mehrdimensionalen Struktur in einer SQL Server SQL Server Analysis Services instance gespeichert werden. Die Verwendung von HOLAP führt nicht dazu, dass eine Kopie der Quelldaten gespeichert wird. Bei Abfragen, die lediglich auf zusammengefasste Daten in den Aggregationen einer Partition zugreifen, ist HOLAP das Äquivalent zu MOLAP. Abfragen, die auf Quelldaten zugreifen, z. B. wenn Sie einen Drilldown zu einer Atomwürfelzelle durchführen möchten, für die keine Aggregationsdaten vorhanden sind, müssen Daten aus der relationalen Datenbank abrufen und sind nicht so schnell wie dies wäre, wenn die Quelldaten in der MOLAP-Struktur gespeichert würden. Beim Speichermodus HOLAP werden Benutzer normalerweise erhebliche Unterschiede bei den Abfragezeiten feststellen, je nachdem, ob die Abfrage anhand das Caches oder mittels Aggregationen aufgelöst werden kann oder ob hierzu die Quelldaten selbst benötigt werden.

Partitionen mit HOLAP-Speicherung sind kleiner als die vergleichbaren MOLAP-Partitionen, da sie keine Quelldaten enthalten, und antworten schneller als ROLAP-Partitionen auf Abfragen, die zusammengefasste Daten einbeziehen. Der Speichermodus HOLAP eignet sich i. A. für Partitionen in Cubes, die schnelle Abfrageantworten für Zusammenfassungen erfordern, die auf großen Mengen von Quelldaten basieren. Wenn Benutzer jedoch Abfragen generieren, die auf Daten auf Blattebene zugreifen müssen, wie z. B. beim Berechnen des Medians, eignet sich MOLAP i. A. besser.

Weitere Informationen

Proaktives Zwischenspeichern (Partitionen)
Synchronisieren von Analysis Services-Datenbanken
Partitionen (Analysis Services – Mehrdimensionale Daten)