Freigeben über


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. Mithilfe der gleichen Speicherstruktur für Partitionen können Sie Partitionen einfach definieren, die später mit dem Befehl MergePartitions zusammengeführt werden können. Weitere Informationen zu Aggregationsdesigns finden Sie unter Aggregations- und Aggregationsdesigns.

Um Aggregationen für ein Aggregationsdesign zu definieren, können Sie den Befehl "DesignAggregations " in XML for Analysis (XMLA) verwenden. Der Befehl "DesignAggregations" verfügt über Eigenschaften, die identifizieren, welche Aggregationsdesigns als Referenz verwendet werden sollen und wie der Entwurfsprozess basierend auf diesem Verweis gesteuert werden soll. Mithilfe des Befehls "DesignAggregations" und deren Eigenschaften können Sie Aggregationen iterativ oder in Batch entwerfen und dann die resultierenden Entwurfsstatistiken anzeigen, um den Entwurfsprozess zu bewerten.

Angeben eines Aggregationsentwurfs

Die Objekteigenschaft des Befehls "DesignAggregations" muss einen Objektverweis auf ein vorhandenes Aggregationsdesign 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 Befehls "DesignAggregations " verwenden, um den Algorithmus zu steuern, der zum Definieren von Aggregationen für das Aggregationsdesign verwendet wird:

  • Die Steps-Eigenschaft bestimmt, wie viele Iterationen der DesignAggregations-Befehl ausgeführt werden soll, bevor die Steuerung an die Clientanwendung zurückgegeben wird.

  • Die Time-Eigenschaft bestimmt, wie viele Millisekunden der DesignAggregations-Befehl dauern sollte, bevor die Steuerung an die Clientanwendung zurückgegeben wird.

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

  • Die Storage-Eigenschaft bestimmt die geschätzte Menge des Datenträgerspeichers in Bytes, die vom Befehl "DesignAggregations " verwendet wird. Wenn Sie Aggregationen iterativ entwerfen, müssen Sie diese Eigenschaft nur beim ersten Befehl senden.

  • Die Materialize-Eigenschaft bestimmt, ob der Befehl "DesignAggregations " die während des Entwurfsvorgangs 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 Befehl "DesignAggregations" unterstützt verwendungsbasierte Optimierungsbefehl, indem ein oder mehrere Abfrageelemente in die Query-Eigenschaft eingeschlossen werden. Die Query-Eigenschaft kann mindestens ein Abfrageelement enthalten. Wenn die Query-Eigenschaft keine Abfrageelemente enthält, verwendet das im Object-Element angegebene Aggregationsentwurf eine Standardstruktur, die einen allgemeinen Satz von Aggregationen enthält. Diese allgemeine Gruppe von Aggregationen ist so konzipiert, dass die kriterien erfüllt werden, die in den Eigenschaften "Optimierung " und " Speicher " des Befehls "DesignAggregations " angegeben sind.

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 angeben oder die von einer Instanz von Microsoft SQL Server SQL Server Analysis Services im Abfrageprotokoll gespeicherten Informationen zum Abrufen von Informationen über die am häufigsten verwendeten Abfragen verwenden. Der Usage-Based Optimierungs-Assistent verwendet das Abfrageprotokoll, um Zielabfragen basierend auf Zeit, Verwendung oder einem angegebenen Benutzer abzurufen, wenn er einen DesignAggregations-Befehl sendet. Weitere Informationen finden Sie in der Hilfe zum Verwendungsbasierten Optimierungs-Assistenten F1.

Wenn Sie iterativ Aggregationen entwerfen, müssen Sie nur Zielabfragen im ersten DesignAggregations-Befehl übergeben, da die SQL Server Analysis Services-Instanz diese Zielabfragen speichert und diese Abfragen während der nachfolgenden DesignAggregations-Befehle 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 Male entspricht, die eine Abfrage zuvor ausgeführt wurde. 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.

Hinweis

Einige Attribute sind von der Berücksichtigung im Dataset ausgenommen. Weitere Informationen zu ausgeschlossenen Attributen 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 Befehl "DesignAggregations " als Teil eines iterativen Prozesses oder eines Batchvorgangs verwenden, je nachdem, welche Interaktivität durch den Entwurfsprozess erforderlich ist.

Entwerfen von Aggregationen mithilfe eines iterativen Prozesses

Um iterative Aggregationen zu entwerfen, senden Sie mehrere DesignAggregations-Befehle , um eine feine Kontrolle über den Entwurfsprozess bereitzustellen. Der Aggregationsentwurfs-Assistent verwendet ebenfalls diesen Ansatz, um eine Feinsteuerung des Entwurfsprozesses zu ermöglichen. Weitere Informationen finden Sie unter Hilfe zum Aggregationsdesign-Assistenten F1.

Hinweis

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 zuerst einen DesignAggregations-Befehl , der die folgenden Informationen enthält:

  • Die Werte der Speicher - und Optimierungseigenschaft , auf die der gesamte Entwurfsprozess ausgerichtet ist.

  • Die Werte für Die Schritteund Zeiteigenschaften, auf denen der erste Schritt des Entwurfsprozesses begrenzt ist.

  • Wenn Sie eine nutzungsbasierte Optimierung wünschen, enthält die Query-Eigenschaft die Zielabfragen, auf die der gesamte Entwurfsprozess ausgerichtet ist.

  • Die Auf "False" festgelegte 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 abgeschlossen ist, gibt der Befehl ein Zeilenset 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 fortgesetzt werden soll, senden Sie dann einen anderen DesignAggregations-Befehl , der die Schritte und Zeitwerte enthält, mit denen dieser Schritt des Entwurfsvorgangs eingeschränkt ist. 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 der Auswertung der Ergebnisse wird fortgesetzt, bis Sie Ihre Ziele erreichen und eine entsprechende Gruppe von Aggregationen definiert haben.

Nachdem Sie die gewünschte Gruppe von Aggregationen erreicht haben, senden Sie einen endgültigen DesignAggregations-Befehl . Dieser endgültige DesignAggregations-Befehl sollte seine Steps-Eigenschaft auf 1 und seine Materialize-Eigenschaft auf true festgelegt haben. Mit diesen Einstellungen schließt dieser endgültige DesignAggregations-Befehl den Entwurfsprozess ab und speichert die definierte Aggregation im Aggregationsentwurf.

Entwerfen von Aggregationen mithilfe eines Batchprozesses

Sie können auch Aggregationen in einem Batchprozess entwerfen, indem Sie einen einzelnen DesignAggregations-Befehlsenden, der die Werte "Schritte", "Zeit", "Speicher" und "Optimierung" enthält, auf die der gesamte Entwurfsprozess ausgerichtet und begrenzt ist. Wenn Sie eine verwendungsbasierte Optimierung wünschen, sollten die Zielabfragen, auf die der Entwurfsprozess ausgerichtet ist, auch in die Query-Eigenschaft einbezogen werden. Stellen Sie außerdem sicher, dass die Materialize-Eigenschaft auf "true" festgelegt ist, sodass der Entwurfsprozess die definierten Aggregationen beim Abschluss des Befehls auf das Aggregationsdesign speichert.

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 Befehl "DesignAggregations " die Steuerung an die Clientanwendung zurückgibt, gibt der Befehl ein Zeilenet 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.

Column Datentyp BESCHREIBUNG
Schritte Integer 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 (Optimierung) Double Der geschätzte Prozentwert der Leistungsverbesserung, der durch den Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung erreicht wird.
Storage Lange ganze Zahl Die geschätzte Anzahl an Bytes, die vom Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung abgewartet werden.
Aggregationen Lange ganze Zahl Die Anzahl der Aggregationen, die vom Befehl vor dem Zurückgeben der Steuerung an die Clientanwendung definiert werden.
LastStep Boolean Gibt an, ob die Daten im Rowset den letzten Schritt im Entwurfsprozess darstellen. Wenn die Eigenschaft "Materialize " des Befehls auf "true" festgelegt wurde, wird der Wert dieser Spalte 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.

Weitere Informationen

Entwickeln mit XMLA in Analysis Services