Share via


Entwerfen von Aggregationen (XMLA)

Aggregationsentwürfe werden den Partitionen einer bestimmten Measuregruppe zugeordnet, um sicherzustellen, dass die Partitionen beim Speichern von Aggregationen die gleiche Struktur verwenden. Indem eine einheitliche Speicherstruktur für Partitionen verwendet wird, können Sie ganz einfach Partitionen definieren, die später mithilfe des MergePartitions-Befehls zusammengeführt werden können. Weitere Informationen zu Aggregationsentwürfen finden Sie unter Aggregationen und Aggregationsentwürfe.

Wenn Sie Aggregationen für einen Aggregationsentwurf definieren möchten, können Sie den DesignAggregations-Befehl in XML for Analysis (XMLA) verwenden. Der DesignAggregations-Befehl umfasst Eigenschaften, die angeben, welche Aggregationsentwürfe als Referenz verwendet sollen und wie der Entwurfsprozess basierend auf dieser Referenz gesteuert werden kann. Mit dem DesignAggregations-Befehl und den dazugehörigen Eigenschaften können Sie Aggregationen iterativ oder in einem Batch entwerfen und anschließend die resultierenden Entwurfsstatistiken anzeigen, um den Entwurfsprozess zu bewerten.

Angeben eines Aggregationsentwurfs

Die Object-Eigenschaft des DesignAggregations-Befehls muss einen Objektverweis auf einen vorhandenen Aggregationsentwurf enthalten. Der Objektverweis enthält einen Datenbankbezeichner, Cubebezeichner, Measuregruppenbezeichner und Aggregationsentwurfsbezeichner. Wenn der Aggregationsentwurf noch nicht vorhanden ist, tritt ein Fehler auf.

Steuern des Entwurfsprozesses

Sie können die folgenden Eigenschaften des DesignAggregations-Befehls verwenden, um den Algorithmus zu steuern, der zum Definieren von Aggregationen für den Aggregationsentwurf verwendet wird.

  • Die Steps-Eigenschaft bestimmt, wie viele Wiederholungen der DesignAggregations-Befehl abwartet, bevor er die Steuerung an die Clientanwendung zurückgibt.

  • Die Time-Eigenschaft bestimmt, wie viele Millisekunden der DesignAggregations-Befehl abwartet, bevor er die Steuerung an die Clientanwendung zurückgibt.

  • Die Optimization-Eigenschaft bestimmt den geschätzten Prozentsatz der Leistungsverbesserung, den der DesignAggregations-Befehl zu erreichen versuchen sollte. Wenn Sie Aggregationen iterativ entwerfen, müssen Sie diese Eigenschaft nur beim ersten Befehl senden.

  • Die Storage-Eigenschaft bestimmt die geschätzte Menge an Festplattenspeicher (in Bytes), die vom DesignAggregations-Befehl benötigt wird. Wenn Sie Aggregationen iterativ entwerfen, müssen Sie diese Eigenschaft nur beim ersten Befehl senden.

  • Die Materialize-Eigenschaft bestimmt, ob der DesignAggregations-Befehl die während des Entwurfsprozesses definierten Aggregationen erstellen soll. Wenn Sie Aggregationen iterativ entwerfen, sollte diese Eigenschaft auf den Wert FALSE gesetzt werden, bis Sie bereit sind, die entworfenen Aggregationen zu speichern. Wenn sie auf den Wert TRUE gesetzt wird, wird der aktuelle Entwurfsprozess beendet, und die definierten Aggregationen werden dem angegebenen Aggregationsentwurf hinzugefügt.

Angeben von Abfragen

Der DesignAggregations-Befehl unterstützt verwendungsbasierte Optimierungsbefehle durch die Einbindung mindestens eines Query-Elements in die Queries-Eigenschaft. Die Queries-Eigenschaft kann ein oder mehrere Query-Elemente enthalten. Wenn die Queries-Eigenschaft keine Query-Elemente enthält, verwendet der im Object-Element angegebene Aggregationsentwurf eine Standardstruktur, die einen allgemeinen Satz Aggregationen enthält. Dieser allgemeine Aggregationssatz wurde so entworfen, dass er die in der Optimization- und der Storage-Eigenschaft des DesignAggregations-Befehls angegebenen Kriterien erfüllt.

Jedes Query-Element stellt eine Zielabfrage dar, die der Entwurfsprozess nutzt, um Aggregationen zu definieren, die auf die am häufigsten verwendeten Abfragen abzielen. Sie können entweder Ihre eigenen Zielabfragen festlegen oder die Informationen nutzen, die von einer Instanz von MicrosoftSQL ServerAnalysis Services im Abfrageprotokoll gespeichert werden, um Informationen über die am häufigsten verwendeten Abfragen abzurufen. Der Assistent für verwendungsbasierte Optimierung verwendet beim Senden eines DesignAggregations-Befehls das Abfrageprotokoll basierend auf Zeit, Verwendung oder einem bestimmten Benutzer. Weitere Informationen finden Sie unter Assistent für verwendungsbasierte Optimierung (F1-Hilfe).

Wenn Sie Aggregationen iterativ entwerfen, müssen Sie Zielabfragen nur im ersten DesignAggregations-Befehl weitergeben, da die Analysis Services-Instanz diese Zielabfragen speichert und diese während folgender DesignAggregations-Befehle erneut verwendet. Nachdem Sie Zielabfragen im ersten DesignAggregations-Befehl eines iterativen Prozesses weitergegeben haben, generiert jeder darauf folgende DesignAggregations-Befehl, der über Zielabfragen in der Queries-Eigenschaft verfügt, einen Fehler.

Das Query-Element enthält einen durch Trennzeichen getrennten Wert, der die folgenden Argumente beinhaltet:

Frequency,Dataset[,Dataset...]

  • Frequency
    Ein Gewichtungsfaktor, der der Anzahl der vorhergehenden Ausführungen der Abfrage entspricht. Wenn das Query-Element eine neue Abfrage darstellt, gibt der Frequency-Wert den Gewichtungsfaktor an, der vom Entwurfsprozess für die Evaluierung der Abfrage verwendet wird. Bei steigendem Häufigkeitswert steigt die Gewichtung auf die Abfrage während des Entwurfsprozesses.

  • Dataset
    Eine numerische Zeichenfolge, die festlegt, welche Attribute einer Dimension in die Abfrage eingebunden werden. Diese Zeichenfolge muss die gleiche Anzahl an Zeichen wie die Anzahl an Attributen in der Dimension haben. Null (0) zeigt an, dass das Attribut an der angegebenen Ordnungsposition für die angegebene Dimension nicht in der Abfrage enthalten ist. Eins (1) zeigt an, dass das Attribut an der angegebenen Ordnungsposition für die angegebene Dimension in der Abfrage enthalten ist.

    Beispielsweise bezieht sich die Zeichenfolge „011“ auf eine Abfrage mit einer Dimension mit drei Attributen, von denen das zweite und dritte Attribut in der Abfrage enthalten sind.

    HinweisHinweis

    Einige Attribute sind von der Berücksichtigung im Dataset ausgenommen. Weitere Informationen über ausgenommene Attribute finden Sie unter Query-Element (XMLA).

    Jede Dimension in der Measuregruppe, die einen Aggregationsentwurf enthält, wird durch einen Dataset-Wert im Query-Element dargestellt. Die Reihenfolge der Dataset-Werte muss der Reihenfolge der Dimensionen entsprechen, die in die Measuregruppe eingebunden sind.

Entwerfen von Aggregationen mithilfe von iterativen oder Batchprozessen

Sie können den DesignAggregations-Befehl als Teil eines iterativen oder eines Batchprozesses verwenden, je nach der für den Entwurfsprozess erforderlichen Interaktivität.

Entwerfen von Aggregationen mithilfe eines iterativen Prozesses

Wenn Sie Aggregationen iterativ entwerfen möchten, senden Sie mehrere DesignAggregations-Befehle, um eine Feinsteuerung des Entwurfsprozesses zu ermöglichen. Der Aggregationsentwurfs-Assistent verwendet ebenfalls diesen Ansatz, um eine Feinsteuerung des Entwurfsprozesses zu ermöglichen. Weitere Informationen finden Sie unter Aggregationsentwurfs-Assistent (F1-Hilfe).

HinweisHinweis

Eine explizite Sitzung ist erforderlich, damit Aggregationen iterativ entworfen werden können. Weitere Informationen zu expliziten Sitzungen finden Sie unter Verwalten von Verbindungen und Sitzungen (XMLA).

Um den iterativen Prozess zu starten, senden Sie zunächst einen DesignAggregations-Befehl, der die folgenden Informationen enthält:

  • Der Storage- und der Optimization-Eigenschaftenwert, auf den der gesamte Entwurfsprozess abzielt.

  • Der Steps- und der Time-Eigenschaftenwert, auf den der erste Schritt des Entwurfsprozesses begrenzt ist.

  • Wenn Sie die verwendungsbasierte Optimierung verwenden möchten, die Queries-Eigenschaft, die die Zielabfragen enthält, auf die der gesamte Entwurfsprozess abzielt.

  • Die auf den Wert FALSE gesetzte Materialize-Eigenschaft. Das Festlegen dieser Eigenschaft auf FALSE gibt an, dass der Entwurfsprozess die definierten Aggregationen nicht im Aggregationsentwurf speichert, wenn der Befehl abgeschlossen ist.

Wenn der erste DesignAggregations-Befehl beendet wird, gibt der Befehl ein Rowset zurück, das Entwurfsstatistiken enthält. Sie können diese Entwurfsstatistiken bewerten, um zu bestimmen, ob der Entwurfsprozess fortgeführt werden sollte oder abgeschlossen ist. Wenn der Prozess fortgeführt werden soll, senden Sie einen weiteren DesignAggregations-Befehl, der den Steps- und den Time-Wert enthält, mit dem dieser Schritt des Entwurfsprozesses begrenzt wird. Sie können diese Entwurfsstatistiken bewerten und anschließend bestimmen, ob der Entwurfsprozess fortgeführt werden sollte. Dieser iterative Prozess des Sendens von DesignAggregations-Befehlen und Auswertens der Ergebnisse wird so lange fortgeführt, bis Sie Ihre Ziele erreicht und einen passenden Satz Aggregationen definiert haben.

Nachdem Sie den gewünschten Satz Aggregationen erreicht haben, senden Sie einen abschließenden DesignAggregations-Befehl. Bei diesem abschließenden DesignAggregations-Befehl sollte die Steps-Eigenschaft auf 1 und die Materialize-Eigenschaft auf TRUE festgelegt sein. Mit diesen Einstellungen schließt der abschließende DesignAggregations-Befehl den Entwurfsprozess ab und speichert die definierten Aggregationen im Aggregationsentwurf.

Entwerfen von Aggregationen mithilfe eines Batchprozesses

Sie können Aggregationen auch in einem Batchprozess entwerfen, indem Sie einen einzelnen DesignAggregations-Befehl senden, der die Eigenschaftswerte Steps, Time, Storage und Optimization enthält, auf die der gesamte Entwurfsprozess abzielt und auf die er begrenzt ist. Wenn Sie die verwendungsbasierte Optimierung verwenden möchten, sollten die Zielabfragen, auf die der Entwurfsprozess abzielt, ebenfalls in der Queries-Eigenschaft enthalten sein. Stellen Sie außerdem sicher, dass die Materialize-Eigenschaft auf den Wert TRUE festgelegt ist, damit der Entwurfsprozess die definierten Aggregationen im Aggregationsentwurf speichert, wenn der Befehl abgeschlossen ist.

Sie können Aggregationen mithilfe eines Batchprozesses entweder in einer impliziten oder in einer expliziten Sitzung entwerfen. Weitere Informationen zu impliziten und expliziten Sitzungen finden Sie unter Verwalten von Verbindungen und Sitzungen (XMLA).

Zurückgeben von Entwurfsstatistiken

Wenn der DesignAggregations-Befehl die Steuerung über die Clientanwendung zurückgibt, gibt er auch ein Rowset zurück, das eine einzelne Zeile enthält, die die Entwurfsstatistiken für den Befehl darstellt. Das Rowset enthält die in der folgenden Tabelle aufgeführten Spalten.

Spalte

Datentyp

Beschreibung

Steps

Integer (Ganzzahl)

Die Anzahl der Schritte, die vom Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung abgewartet werden.

Time

Lange ganze Zahl

Die Anzahl der Millisekunden, die vom Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung abgewartet werden.

Optimization

Double

Der geschätzte Prozentwert der Leistungsverbesserung, der durch den Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung erreicht wird.

Storage

Langer Integer

Die geschätzte Anzahl an Bytes, die vom Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung abgewartet werden.

Aggregations

Langer Integer

Die Anzahl der Aggregationen, die vom Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung definiert werden.

LastStep

Boolesch (Boolean)

Gibt an, ob die Daten im Rowset den letzten Schritt im Entwurfsprozess darstellen. Wenn die Materialize-Eigenschaft des Befehls auf den Wert TRUE festgelegt wurde, wird der Wert dieser Spalte ebenfalls auf TRUE festgelegt.

Sie können die Entwurfsstatistiken verwenden, die im Rowset enthalten sind, das nach jedem DesignAggregations-Befehl sowohl im iterativen als auch im Batchentwurf zurückgegeben wird. Im iterativen Entwurf können Sie die Entwurfsstatistiken verwenden, um den Status zu bestimmen und anzuzeigen. Wenn Sie Aggregationen in einem Batch entwerfen, können Sie die Entwurfsstatistiken verwenden, um die Anzahl der vom Befehl erstellten Aggregationen zu bestimmen.