Freigeben über


Erstellen von Teilcubes in MDX (MDX)

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

Ein Teilcube ist eine Teilmenge eines Cubes, die einer gefilterten Sicht der zugrunde liegenden Daten entspricht. Durch Begrenzen des Cubes auf einen Teilcube können Sie die Abfrageleistung verbessern.

Zum Definieren eines Teilcubes verwenden Sie die in diesem Thema beschriebene CREATE SUBCUBE -Anweisung.

Syntax von CREATE SUBCUBE

Verwenden Sie die folgende Syntax, um einen Teilcube zu erstellen:

CREATE SUBCUBE Subcube_Identifier AS Subcube_Expression  

Die Syntax von CREATE SUBCUBE ist recht einfach. Der Subcube_Identifier -Parameter gibt den Cube an, auf dem der Teilcube basieren soll. Der Subcube_Expression -Parameter wählt den Teil des Cubes aus, der zum Teilcube werden soll.

Nachdem Sie einen Teilcube erstellt haben, wird dieser Teilcube so lange der Kontext für alle MDX-Abfragen, bis Sie die Sitzung geschlossen oder die DROP SUBCUBE -Anweisung ausgeführt haben.

Inhalt eines Teilcubes

Obwohl die CREATE SUBCUBE-Anweisung recht einfach zu verwenden ist, zeigt die Anweisung selbst nicht explizit alle Elemente, die Bestandteil eines Teilcubes werden. Für das Definieren eines Teilcubes gelten folgende Regeln:

  • Wenn Sie das (All) -Element einer Hierarchie einfügen, fügen Sie jedes Element dieser Hierarchie ein.

  • Wenn Sie ein Element einfügen, fügen Sie auch die Vorgänger und Nachfolger dieses Elements ein.

  • Wenn Sie jedes Element einer Ebene einfügen, fügen Sie alle Elemente aus der Hierarchie ein. Elemente aus anderen Hierarchien werden ausgeschlossen, wenn diese Elemente keine Elemente auf der Ebene haben (beispielsweise eine unausgeglichene Hierarchie: etwa eine Stadt, für die es keine Kunden gibt).

  • Ein Teilcube enthält immer jedes (All) -Element aus dem Cube.

Aggregatwerte im Teilcube werden visuell summiert. Ein Teilcube enthält beispielsweise USA, WAund OR. Der Aggregatwert für USA ist die Summe aus {WA,OR} , weil WA und OR die einzigen Staaten sind, die durch den Teilcube definiert sind. Alle anderen Staaten werden ignoriert.

Explizite Verweise auf Zellen, die sich außerhalb des Teilcubes befinden, geben Zellwerte zurück, die im Kontext des gesamten Cubes ausgewertet wurden. Beispielsweise erstellen Sie einen Teilcube, der auf das aktuelle Jahr beschränkt ist. Sie verwenden dann die ParallelPeriod -Funktion, um das aktuelle Jahr mit dem vorherigen Jahr zu vergleichen. Die Differenz in den Werten wird zurückgegeben, obwohl der Wert des Vorjahres außerhalb des Teilcubes liegt.

Wenn der ursprüngliche Kontext nicht überschrieben wurde, werden SET-Funktionen, die in einer untergeordneten SELECT-Anweisung ausgewertet werden, im Kontext dieser Anweisung ausgewertet. Wurde der Kontext überschrieben, werden SET-Funktionen im Kontext des gesamten Cubes ausgewertet.

Beispiel zu CREATE SUBCUBE

Im folgenden Beispiel wird ein Teilcube erstellt, der den Budget-Cube auf die Konten 4200 und 4300 beschränkt:

CREATE SUBCUBE Budget AS SELECT {[Account].[Account].&[4200], [Account].[Account].&[4300] } ON 0 FROM Budget

Nachdem für die Sitzung ein Teilcube erstellt wurde, werden alle weiteren Abfragen nicht mehr für den gesamten Cube, sondern nur noch für den Teilcube ausgeführt. Sie führen beispielsweise die folgende Abfrage aus. Diese Abfrage gibt nur Elemente von den Konten 4200 und 4300 zurück.

SELECT [Account].[Account].Members ON 0, Measures.Members ON 1 FROM Budget

Weitere Informationen

Festlegen des Cubekontexts in einer Abfrage (MDX)
Grundlegendes zu MDX-Abfragen (Analysis Services)