Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aggregationsdesigns sind den Partitionen einer bestimmten Measuregruppe zugeordnet, um sicherzustellen, dass die Partitionen beim Speichern von Aggregationen dieselbe Struktur verwenden. Mithilfe derselben Speicherstruktur für Partitionen können Sie Partitionen ganz 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 einen Aggregationsentwurf zu definieren, können Sie den Befehl "DesignAggregations " in XML for Analysis (XMLA) verwenden. Der Befehl "DesignAggregations " verfügt über Eigenschaften, die bestimmen, welches Aggregationsdesign als Referenz verwendet werden soll, und wie der Entwurfsprozess basierend auf diesem Verweis gesteuert wird. Mithilfe des Befehls "DesignAggregations " und der zugehörigen Eigenschaften können Sie Aggregationen iterativ oder im Batch entwerfen und dann die resultierenden Entwurfsstatistiken anzeigen, um den Entwurfsprozess auszuwerten.
Angeben eines Aggregationsdesigns
Die Objekteigenschaft des Befehls "DesignAggregations " muss einen Objektverweis auf einen vorhandenen Aggregationsentwurf enthalten. Der Objektverweis enthält einen Datenbankbezeichner, eine Kubuskennung, eine Maßgruppenkennung und eine Aggregationsentwurfkennung. 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 den Aggregationsentwurf verwendet wird:
Die Steps-Eigenschaft bestimmt, wie viele Iterationen der DesignAggregations-Befehl ausführen soll, bevor es die Steuerung an die Clientanwendung zurückgibt.
Die Time-Eigenschaft bestimmt, wie viele Millisekunden der DesignAggregations-Befehl dauern soll, bevor es die Steuerung an die Clientanwendung zurückgibt.
Die Optimierungseigenschaft bestimmt den geschätzten Prozentsatz der Leistungsverbesserung, den der Befehl "DesignAggregations " erreichen soll. Wenn Sie Aggregationen iterativ entwerfen, müssen Sie diese Eigenschaft nur für den ersten Befehl senden.
Die Storage-Eigenschaft bestimmt die geschätzte Menge des Datenträgerspeichers in Byte, die vom Befehl "DesignAggregations " verwendet wird. Wenn Sie Aggregationen iterativ entwerfen, müssen Sie diese Eigenschaft nur für den ersten Befehl senden.
Die Materialize-Eigenschaft bestimmt, ob der Befehl "DesignAggregations " die aggregationen erstellen soll, die während des Entwurfsprozesses definiert sind. Wenn Sie Aggregationen iterativ entwerfen, sollte diese Eigenschaft auf "false" festgelegt werden, bis Sie bereit sind, die entworfenen Aggregationen zu speichern. Bei Festlegung auf "true" endet der aktuelle Entwurfsprozess und die definierten Aggregationen werden dem angegebenen Aggregationsentwurf hinzugefügt.
Abfragen definieren
Der Befehl "DesignAggregations" unterstützt den verwendungsbasierten Optimierungsbefehl, indem ein oder mehrere Abfrageelemente in die Queries-Eigenschaft eingeschlossen werden. Die Queries-Eigenschaft kann ein oder mehrere Query-Elemente enthalten. Wenn die Queries-Eigenschaft keine Abfrageelemente enthält, verwendet das im Objektelement angegebene Aggregationsdesign eine Standardstruktur, die einen allgemeinen Satz von Aggregationen enthält. Diese allgemeine Gruppe von Aggregationen ist so konzipiert, dass sie die in den Eigenschaften "Optimierung " und "Speicher " des Befehls "DesignAggregations " angegebenen Kriterien erfüllt.
Jedes Query-Element stellt eine Zielabfrage dar, die der Entwurfsprozess verwendet, um Aggregationen zu definieren, die auf die am häufigsten verwendeten Abfragen abzielen. Sie können entweder Eigene Zielabfragen angeben oder die von einer Instanz von Microsoft SQL Server SQL Server SQL Server Analysis Services gespeicherten Informationen im Abfrageprotokoll verwenden, um Informationen zu den am häufigsten verwendeten Abfragen abzurufen. Der Nutzungsbasierte Optimierungsassistent verwendet das Abfrageprotokoll, um Zielabfragen basierend auf Zeit, Nutzung oder einem bestimmten Benutzer abzurufen, wenn er einen DesignAggregations-Befehl sendet. Weitere Informationen finden Sie in der F1-Hilfe des Assistenten für Nutzungsbasierte Optimierung.
Wenn Sie Aggregationen iterativ 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 nachfolgenden DesignAggregations-Befehlen verwendet. Nachdem Sie Zielabfragen im ersten DesignAggregations-Befehl eines iterativen Prozesses übergeben haben, generiert jeder nachfolgende DesignAggregations-Befehl , der Zielabfragen in der Queries-Eigenschaft enthält, einen Fehler.
Das Query-Element enthält einen durch Trennzeichen getrennten Wert, der die folgenden Argumente enthält:
Häufigkeit,Datensatz[,Datensatz...]
Frequenz
Ein Gewichtungsfaktor, der der Häufigkeit entspricht, mit der die Abfrage zuvor ausgeführt wurde. Wenn das Query-Element eine neue Abfrage darstellt, stellt der Häufigkeitswert den Gewichtungsfaktor dar, der vom Entwurfsprozess zum Auswerten der Abfrage verwendet wird. Wenn der Häufigkeitswert größer wird, erhöht sich die Gewichtung, die während des Entwurfsvorgangs auf die Abfrage gesetzt wird.
Dataset
Eine numerische Zeichenfolge, die angibt, welche Attribute aus einer Dimension in die Abfrage einbezogen werden sollen. Diese Zeichenfolge muss dieselbe Anzahl von Zeichen aufweisen wie die Anzahl der Attribute in der Dimension. Null (0) gibt an, dass das Attribut in der angegebenen Ordnungsposition nicht in der Abfrage für die angegebene Dimension enthalten ist, während eine (1) angibt, dass das Attribut in der angegebenen Ordnungsposition in der Abfrage für die angegebene Dimension enthalten ist.
Beispielsweise verweist die Zeichenfolge "011" auf eine Abfrage mit einer Dimension mit drei Attributen, aus denen die zweiten und dritten Attribute in die Abfrage einbezogen werden.
Hinweis
Einige Attribute werden aus der Berücksichtigung im Dataset ausgeschlossen. Weitere Informationen zu ausgeschlossenen Attributen finden Sie unter Query Element (XMLA).
Jede Dimension in der Measuregruppe, die den Aggregationsentwurf enthält, wird durch einen Datasetwert im Query-Element dargestellt. Die Reihenfolge der Datasetwerte muss mit der Reihenfolge der Dimensionen übereinstimmen, die in der Measuregruppe enthalten sind.
Entwerfen von Aggregationen mithilfe von iterativen oder Batchprozessen
Sie können den Befehl "DesignAggregations " als Teil eines iterativen Prozesses oder eines Batchprozesses verwenden, je nachdem, welche Interaktivität für den Entwurfsprozess erforderlich ist.
Entwerfen von Aggregationen mithilfe eines iterativen Prozesses
Um Aggregationen iterativ zu entwerfen, senden Sie mehrere DesignAggregations-Befehle , um eine feine Kontrolle über den Entwurfsprozess zu ermöglichen. Der Aggregationsentwurfs-Assistent verwendet diesen Ansatz, um eine feine Kontrolle über den Entwurfsprozess zu bieten. Weitere Informationen erhalten Sie in der F1-Hilfe zum Aggregationsentwurfs-Assistenten.
Hinweis
Eine explizite Sitzung ist erforderlich, um Aggregationen iterativ zu entwerfen. Weitere Informationen zu expliziten Sitzungen finden Sie unter Managing Connections and Sessions (XMLA).
Um den iterativen Prozess zu starten, senden Sie zunächst einen DesignAggregations-Befehl , der die folgenden Informationen enthält:
Die Werte der Speicher- und Optimierungseigenschaften, auf die der gesamte Designprozess ausgerichtet ist.
Die Eigenschaftswerte für Steps und Time, auf die der erste Schritt des Entwurfsprozesses begrenzt ist.
Wenn Sie eine nutzungsbasierte Optimierung wünschen, enthält die Queries-Eigenschaft die Zielabfragen, auf die der gesamte Entwurfsprozess ausgerichtet ist.
Die Materialize-Eigenschaft ist auf "false" festgelegt. Wenn Sie diese Eigenschaft auf "false" festlegen, wird angegeben, dass der Entwurfsvorgang die definierten Aggregationen nicht im Aggregationsentwurf speichert, wenn der Befehl abgeschlossen ist.
Wenn der erste DesignAggregations-Befehl abgeschlossen ist, gibt der Befehl ein Rowset zurück, das Entwurfsstatistiken enthält. Sie können diese Entwurfsstatistiken auswerten, um festzustellen, ob der Entwurfsprozess fortgesetzt werden soll oder ob der Entwurfsprozess abgeschlossen ist. Wenn der Prozess fortgesetzt werden soll, senden Sie einen anderen DesignAggregations-Befehl , der die Werte "Schritte " und " Zeit " enthält, mit denen dieser Schritt des Entwurfsvorgangs eingeschränkt ist. Sie bewerten die resultierenden Statistiken und bestimmen dann, ob der Entwurfsprozess fortgesetzt werden soll. Dieser iterative Prozess des Sendens von DesignAggregations-Befehlen und der Auswertung der Ergebnisse wird fortgesetzt, bis Sie Ihre Ziele erreichen und einen geeigneten Satz von Aggregationen definiert haben.
Nachdem Sie den gewünschten Satz von Aggregationen erreicht haben, senden Sie einen endgültigen DesignAggregations-Befehl . Dieser letzte 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 Aggregationen auch in einem Batchprozess entwerfen, indem Sie einen einzelnen DesignAggregations-Befehl senden, der die Werte der Eigenschaften "Schritte", " Zeit", "Speicher" und " Optimierung " enthält, auf die der gesamte Designprozess ausgerichtet und begrenzt ist. Wenn Sie eine nutzungsbasierte Optimierung wünschen, sollten die Zielabfragen, auf die der Entwurfsprozess ausgerichtet ist, auch in die Queries-Eigenschaft einbezogen werden. Stellen Sie außerdem sicher, dass die Materialize-Eigenschaft auf "true" festgelegt ist, damit der Entwurfsprozess die definierten Aggregationen im Aggregationsentwurf speichert, wenn der Befehl abgeschlossen ist.
Sie können Aggregationen mithilfe eines Batchprozesses in einer impliziten oder 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 Rowset zurück, das eine einzelne Zeile enthält, die die Entwurfsstatistiken für den Befehl darstellt. Das Rowset enthält die spalten, die in der folgenden Tabelle aufgeführt sind.
| Kolumne | Datentyp | Description |
|---|---|---|
| Steps | Integer | Die Anzahl der Vom Befehl ausgeführten Schritte, bevor die Steuerung an die Clientanwendung zurückgegeben wird. |
| Uhrzeit | Ganzzahl (Long) | Die Anzahl der Millisekunden, die der Befehl benötigt, um die Kontrolle an die Clientanwendung zurückzugeben. |
| Optimization | Double | Der geschätzte Prozentsatz der Vom Befehl erreichten Leistungsverbesserungen, bevor die Steuerung an die Clientanwendung zurückgegeben wird. |
| Storage | Ganzzahl (Long) | Die geschätzte Anzahl von Bytes, die vom Befehl vor der Rückgabe der Kontrolle an die Clientanwendung verbraucht werden. |
| Aggregationen | Ganzzahl (Long) | Die Anzahl der vom Befehl definierten Aggregationen, bevor das Steuerelement an die Clientanwendung zurückgegeben wird. |
| LastStep | Boolean | Gibt an, ob die Daten im Rowset den letzten Schritt im Entwurfsprozess darstellen. Wenn die Materialize-Eigenschaft 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, die nach jedem DesignAggregations-Befehl sowohl im iterativen als auch im Batchentwurf zurückgegeben werden. Im iterativen Design können Sie die Entwurfsstatistiken verwenden, um den Fortschritt zu bestimmen und anzuzeigen. Wenn Sie Aggregationen im Batch entwerfen, können Sie die Entwurfsstatistiken verwenden, um die Anzahl der vom Befehl erstellten Aggregationen zu ermitteln.