集計のデザイン (XMLA)
集計デザインは、集計の格納時に複数のパーティションで同じ構造を確実に使用するようにするため、特定のメジャー グループのパーティションに関連付けられるものです。 パーティションに同じストレージ構造を使用すると、MergePartitions コマンドを使用して後でマージできるパーティション を簡単に定義 できます。 集計デザインの詳細については、「集計と集計 デザイン」を参照してください。
集計デザインの集計を定義するには、XMLA (集計) で DesignAggregations XML for Analysis使用できます。 DesignAggregations コマンドには、参照として使用する集計デザインと、その参照に基づいてデザイン プロセスを制御する方法を識別するプロパティがあります。 DesignAggregations コマンドとそのプロパティを使用して、集計を反復的またはバッチで設計し、結果のデザイン統計を表示してデザイン プロセスを評価できます。
集計デザインの指定
DesignAggregations コマンドの Object プロパティには、既存の集計デザインへのオブジェクト参照が含まれている必要があります。 オブジェクト参照には、データベース識別子、キューブ識別子、メジャー グループ識別子、および集計デザイン識別子が含まれます。 既存の集計デザインがない場合、エラーが発生します。
デザイン プロセスの制御
DesignAggregations コマンドの次のプロパティを使用して、集計デザインの集計を定義するために使用されるアルゴリズムを制御できます。
Steps プロパティ は、クライアント アプリケーションに制御を返す前に DesignAggregations コマンドが実行する反復回数を決定します。
Time プロパティは、クライアント アプリケーションに制御を返す前に DesignAggregations コマンドが実行するミリ秒数を決定します。
Optimization プロパティ は、 DesignAggregations コマンドが達成しようとするパフォーマンス向上の推定割合を決定します。 集計を反復的にデザインする場合、このプロパティは最初のコマンドで送信するだけで十分です。
プロパティStorageDesignAggregations コマンドで使用されるディスク 記憶域の推定量 (バイト単位) を決定します。 集計を反復的にデザインする場合、このプロパティは最初のコマンドで送信するだけで十分です。
Materialize プロパティは、DesignAggregations コマンドがデザイン プロセス中に定義された集計を作成するかどうかを決定します。 集計を反復的にデザインする場合、デザインした集計を保存する用意ができるまで、このプロパティは false に設定しておく必要があります。 true に設定した場合、現在のデザイン プロセスが終了し、定義された集計は指定した集計デザインに追加されます。
クエリの指定
DesignAggregations コマンドは、Querys プロパティに 1 つ以上の Query 要素を含め、使用法ベースの 最適化コマンドをサポート します。 Queries プロパティには、1 つ以上の Query 要素を含めできます。 Querys プロパティに Query 要素が含まれている場合、Object 要素で指定された集計デザインでは、集計の一般的なセットを含む既定の構造体が使用されます。 この一般的な集計セットは、DesignAggregations コマンドの [最適化] および [Storageプロパティ] で指定された条件を満たするように設計されています。
各 Query 要素は、最もよく使用するクエリを対象とする集計を定義するためにデザイン プロセスが使用する、目標クエリを表します。 独自の目標クエリを指定するか、クエリ ログ内の Microsoft SQL Server Analysis Services のインスタンスによって格納される情報を使用して、最も頻繁に使用されるクエリに関する情報を取得できます。 最適化Usage-Basedウィザードは、 DesignAggregations コマンドを送信するときに、クエリ ログを使用して、時間、使用状況、または指定されたユーザーに基づいて目標クエリを取得します。 詳細については、「使用法ベースの 最適化ウィザードの F1 ヘルプ」を参照してください。
集計を繰り返し設計する場合は、最初の DesignAggregations コマンドで目標クエリを渡す必要があります。これは、Analysis Services インスタンスがこれらの目標クエリを格納し、後続の DesignAggregations コマンドの間にこれらのクエリを使用します。 反復処理の最初の DesignAggregations コマンドで目標クエリを渡した場合、後続の DesignAggregations コマンドの Queries プロパティに目標クエリが含まれていると、エラーが発生します。
Query 要素には、以下の引数を含むコンマ区切りの値が含まれます。
Frequency,Dataset[,Dataset...]
頻度
クエリが以前に実行された回数に対応する重み係数です。 Query 要素が新しいクエリを表す場合、 Frequency の値はクエリを評価するためにデザイン プロセスによって使用される重み係数を表します。 この値が大きいほど、デザイン プロセスでクエリに対して付けられる重みが増加します。
データセット
ディメンション内のどの属性をクエリに含めるかを指定する数値文字列です。 この文字列の文字数は、ディメンション内の属性の数と一致している必要があります。 0 は、その位置にある属性が、指定されたディメンションのクエリに含まれないことを示します。1 は、その位置にある属性が、指定されたディメンションのクエリに含まれることを示します。
たとえば文字列 "011" は、3 つの属性を持つディメンションを処理するクエリの中に、2 番目と 3 番目の属性が含まれることを示しています。
注意
いくつかの属性は、データセットでの考慮の対象から除外されます。 除外される属性の詳細については、「 Query 要素 (XMLA)」を参照してください。
集計デザインを含むメジャー グループ内の各ディメンションは、 Query 要素の Dataset の値によって表されます。 Dataset の値の順序は、メジャー グループに含まれるディメンションの順序と一致している必要があります。
反復処理またはバッチ処理を使用した集計のデザイン
DesignAggregations コマンドは、設計プロセスで必要な対話機能に応じて、反復的なプロセスまたはバッチ プロセスの一部として使用できます。
反復処理を使用した集計のデザイン
集計を反復的に設計するには、デザイン プロセスを細かく制御するために、複数の DesignAggregations コマンドを送信します。 集計のデザイン ウィザードでも、同じアプローチを使用してデザイン プロセスを細かく制御します。 詳細については、「集計デザイン ウィザード の F1 ヘルプ」を参照してください。
注意
集計を反復処理によってデザインするには、明示的なセッションが必要です。 明示的なセッションの詳細については、「接続とセッションの 管理 (XMLA)」を参照してください。
反復的なプロセスを開始するには、まず、次の情報を含む DesignAggregations コマンドを送信します。
デザイン Storageの対象となるプロパティ値と最適化プロパティ値。
デザイン プロセス の 最初の ステップが制限されている Steps プロパティ値と Time プロパティ値。
使用ベースの最適化が必要な場合は、デザイン プロセス全体が対象となる目標クエリを含む Queries プロパティ。
Materialize プロパティが false に設定されています。 このプロパティを false に設定することは、コマンドの完了時に、定義された集計がデザイン プロセスによって集計デザインに保存されないことを意味します。
最初の DesignAggregations コマンドが完了すると、デザイン統計を含む行セットが返されます。 これらのデザインの統計を評価して、デザイン プロセスを継続するか、あるいは終了するかを判断することができます。 プロセスを続行する必要がある場合は、デザイン プロセスのこのステップが制限されている [ステップ] と [時間] の値を含む別の DesignAggregations コマンドを送信します。 そして結果の統計を評価し、デザイン プロセスを継続すべきかどうかを判断します。 DesignAggregations コマンドを送信し、結果を評価するこの反復的なプロセスは、目標に達し、適切な集計セットが定義されるまで続行されます。
必要な集計のセットに達すると、最終的な DesignAggregations コマンドが 1 つ送信 されます。 この最後 の DesignAggregations コマンドでは、 Steps プロパティが 1 に設定され、 その Materialize プロパティが true に設定されている必要があります。 これらの設定を使用して、この 最後の DesignAggregations コマンドはデザイン プロセスを完了し、定義された集計を集計デザインに保存します。
バッチ処理を使用した集計のデザイン
また、デザイン プロセス全体が対象で制限されている Steps、Time、Storage、および Optimization プロパティ値を含む単一の DesignAggregations コマンドを送信することで、バッチ プロセスで集計を設計することもできます。 使用ベースの最適化が必要な場合は、デザイン プロセスの対象となる目標クエリも Queries プロパティに含める必要 があります。 また、 Materialize プロパティが true に設定され、コマンドの完了時に定義された集計がデザイン プロセスによって集計デザインに保存されます。
バッチ処理による集計のデザインは、暗黙のセッションまたは明示的なセッションのいずれでも行うことができます。 暗黙的および明示的なセッションの詳細については、「接続とセッションの 管理 (XMLA)」を参照してください。
デザインの統計を返す処理
DesignAggregations コマンドがクライアント アプリケーションに制御を返す場合、コマンドは、コマンドのデザイン統計を表す 1 つの行を含む行セットを返します。 行セットに含まれる列は、次の表のとおりです。
| 列 | データ型 | 説明 |
|---|---|---|
| 手順 | Integer | クライアント アプリケーションに制御を返すまでに、コマンドによって行われたステップの数です。 |
| Time | Long integer | クライアント アプリケーションに制御を返すまでに、コマンドで経過したミリ秒単位の時間です。 |
| 最適化 | Double | クライアント アプリケーションに制御を返すまでに、コマンドによって達成されたパフォーマンス向上率の予測値です。 |
| Storage | Long integer | クライアント アプリケーションに制御を返すまでに、コマンドによって使用されたバイト数の予測値です。 |
| 集計関数 | Long integer | クライアント アプリケーションに制御を返すまでに、コマンドによって定義された集計の数です。 |
| LastStep | Boolean | 行セット内のデータがデザイン プロセス内の最後のステップを表しているかどうかを示します。 コマンドの Materialize プロパティが true に設定されている場合、この列の値は true に設定されます。 |
各 DesignAggregations コマンドの後に返される行セットに含まれるデザイン統計は、反復設計とバッチ設計の両方で使用できます。 反復処理によるデザインの場合、進行状況の判別と表示を行うために、デザインの統計を使用できます。 集計をバッチ処理によってデザインする場合は、コマンドによって作成された集計の数を判断するために、デザインの統計を使用できます。