次の方法で共有


集計の設計 (XMLA)

集計デザインは、集計を格納するときにパーティションが同じ構造を使用するように、特定のメジャー グループのパーティションに関連付けられます。 パーティションに同じストレージ構造を使用すると、 MergePartitions コマンドを使用して後でマージできるパーティションを簡単に定義できます。 集計デザインの詳細については、「 集計と集計デザイン」を参照してください。

集計デザインの集計を定義するには、XML for Analysis ( XMLA) の DesignAggregations コマンドを使用します。 DesignAggregations コマンドには、参照として使用する集計デザインとその参照に基づいてデザイン プロセスを制御する方法を識別するプロパティがあります。 DesignAggregations コマンドとそのプロパティを使用すると、集計を繰り返しまたはバッチで設計し、結果の設計統計を表示して設計プロセスを評価できます。

集計デザインの指定

DesignAggregations コマンドの Object プロパティには、既存の集計デザインへのオブジェクト参照が含まれている必要があります。 オブジェクト参照には、データベース識別子、キューブ識別子、メジャー グループ識別子、集計デザイン識別子が含まれます。 集計デザインがまだ存在しない場合は、エラーが発生します。

設計プロセスの制御

DesignAggregations コマンドの次のプロパティを使用して、集計デザインの集計を定義するために使用するアルゴリズムを制御できます。

  • Steps プロパティは、DesignAggregations コマンドがクライアント アプリケーションに制御を返す前に実行する反復回数を決定します。

  • Time プロパティは、DesignAggregations コマンドがクライアント アプリケーションに制御を返すまでの時間 (ミリ秒) を決定します。

  • Optimization プロパティは、DesignAggregations コマンドが達成しようとするパフォーマンス向上の推定パーセンテージを決定します。 集計を繰り返し設計する場合は、最初のコマンドでこのプロパティを送信するだけで済みます。

  • Storage プロパティは、DesignAggregations コマンドで使用されるディスク ストレージの推定量をバイト単位で決定します。 集計を繰り返し設計する場合は、最初のコマンドでこのプロパティを送信するだけで済みます。

  • Materialize プロパティは、デザイン プロセス中に定義された集計をDesignAggregations コマンドで作成するかどうかを決定します。 集計を繰り返しデザインする場合は、デザインされた集計を保存する準備ができるまで、このプロパティを false に設定する必要があります。 true に設定すると、現在のデザイン プロセスが終了し、定義された集計が指定された集計デザインに追加されます。

クエリの指定

DesignAggregations コマンドは、Queries プロパティに 1 つ以上のQuery要素を含めることで、使用量ベースの最適化コマンドをサポートします。 Queries プロパティには、1 つ以上の Query 要素を含めることができます。 Queries プロパティにQuery要素が含まれていない場合、Object要素で指定された集計デザインでは、一般的な集計セットを含む既定の構造が使用されます。 この一般的な集計セットは、DesignAggregations コマンドのOptimizationプロパティとStorageプロパティで指定された条件を満たすように設計されています。

Query 要素は、最も頻繁に使用されるクエリを対象とする集計を定義するために設計プロセスが使用する目標クエリを表します。 独自の目標クエリを指定することも、Microsoft SQL Server Analysis Services のインスタンスによってクエリ ログに格納されている情報を使用して、最も頻繁に使用されるクエリに関する情報を取得することもできます。 Usage-Based 最適化ウィザードでは、クエリ ログを使用して、 DesignAggregations コマンドを送信するときに、時間、使用状況、または指定したユーザーに基づいて目標クエリを取得します。 詳細については、 Usage-Based 最適化ウィザードの F1 ヘルプを参照してください。

集計を繰り返し設計する場合は、Analysis Services インスタンスがこれらの目標クエリを格納し、後続の DesignAggregations コマンド中にこれらのクエリを使用するため、最初の DesignAggregations コマンドで目標クエリを渡す必要があります。 反復プロセスの最初のDesignAggregations コマンドで目標クエリを渡すと、Queries プロパティに目標クエリを含む後続の DesignAggregations コマンドでエラーが生成されます。

Query要素には、次の引数を含むコンマ区切りの値が含まれています。

Frequency,Dataset[,Dataset...]

頻度
クエリが以前に実行された回数に対応する重み係数。 Query要素が新しいクエリを表す場合、Frequency 値は、クエリを評価するために設計プロセスで使用される重み係数を表します。 頻度の値が大きくなると、デザイン プロセス中にクエリに配置される重みが大きくなります。

データセット
クエリに含めるディメンションの属性を指定する数値文字列。 この文字列は、ディメンション内の属性の数と同じ文字数である必要があります。 ゼロ (0) は、指定した序数位置の属性が指定したディメンションのクエリに含まれていないことを示し、1 つ (1) は、指定した序数位置の属性が指定したディメンションのクエリに含まれていることを示します。

たとえば、文字列 "011" は、3 つの属性を持つディメンションを含むクエリを参照し、そこから 2 番目と 3 番目の属性がクエリに含まれます。

一部の属性は、データセット内の考慮事項から除外されます。 除外される属性の詳細については、「 クエリ要素 (XMLA)」を参照してください。

集計デザインを含むメジャー グループ内の各ディメンションは、Query要素のデータセット値によって表されます。 データセット値の順序は、メジャー グループに含まれるディメンションの順序と一致する必要があります。

反復プロセスまたはバッチ プロセスを使用した集計の設計

DesignAggregations コマンドは、設計プロセスに必要な対話機能に応じて、反復プロセスまたはバッチ プロセスの一部として使用できます。

反復プロセスを使用した集計の設計

集計を繰り返し設計するには、複数の DesignAggregations コマンドを送信して、設計プロセスを細かく制御します。 集計デザイン ウィザードでは、これと同じ方法を使用して、デザイン プロセスを細かく制御できます。 詳細については、「 集計デザイン ウィザード F1 ヘルプ」を参照してください。

集計を反復的に設計するには、明示的なセッションが必要です。 明示的なセッションの詳細については、「 接続とセッションの管理 (XMLA)」を参照してください。

反復プロセスを開始するには、まず、次の情報を含む DesignAggregations コマンドを送信します。

  • デザイン プロセス全体を対象とする StorageOptimization プロパティの値。

  • デザイン プロセスの最初のステップが制限される StepsTime プロパティの値。

  • 使用量ベースの最適化が必要な場合は、設計プロセス全体を対象とする目標クエリを含む Queries プロパティです。

  • Materialize プロパティを false に設定します。 このプロパティを false に設定すると、コマンドの完了時に、定義された集計が集計デザインに保存されないことを示します。

最初の DesignAggregations コマンドが完了すると、デザイン統計を含む行セットが返されます。 これらの設計統計を評価して、設計プロセスを続行する必要があるかどうか、または設計プロセスが完了したかどうかを判断できます。 プロセスを続行する必要がある場合は、設計プロセスのこの手順が制限されているStepsTimeの値を含む別のDesignAggregations コマンドを送信します。 結果の統計情報を評価し、設計プロセスを続行する必要があるかどうかを判断します。 DesignAggregationsコマンドを送信し、結果を評価するこの反復的なプロセスは、目標に達し、適切な集計セットが定義されるまで続行されます。

目的の集計のセットに到達したら、最後の DesignAggregations コマンドを 1 つ送信します。 この最後の DesignAggregations コマンドでは、 Steps プロパティを 1 に設定し、 Materialize プロパティを true に設定する必要があります。 これらの設定を使用すると、この最後の DesignAggregations コマンドによってデザイン プロセスが完了し、定義された集計が集計デザインに保存されます。

バッチ プロセスを使用した集計の設計

また、StepsTimeStorage、およびデザイン プロセス全体が対象と制限されているプロパティ値を含む 1 つのDesignAggregations コマンドを送信して Optimization、バッチ プロセスで集計を設計することもできます。 使用量ベースの最適化が必要な場合は、デザイン プロセスの対象となる目標クエリも Queries プロパティに含める必要があります。 また、コマンドの終了時に定義された集計が集計デザインに保存されるように、 Materialize プロパティが true に設定されていることを確認します。

暗黙的または明示的なセッションでバッチ プロセスを使用して集計を設計できます。 暗黙的セッションと明示的セッションの詳細については、「 接続とセッションの管理 (XMLA)」を参照してください。

デザイン統計を返す

DesignAggregations コマンドがクライアント アプリケーションに制御を返すと、コマンドは、コマンドの設計統計を表す 1 つの行を含む行セットを返します。 行セットには、次の表に示す列が含まれています。

コラム データの種類 説明
ステップス 整数 クライアント アプリケーションに制御を返す前にコマンドによって実行された手順の数。
時間 長整数 クライアント アプリケーションに制御を返すまでのコマンドの実行時間 (ミリ秒)。
最適化 ダブル 制御をクライアント アプリケーションに返す前にコマンドによって達成されたパフォーマンス向上の推定パーセンテージ。
ストレージ 長整数 クライアント アプリケーションに制御を返す前にコマンドによって取得された推定バイト数。
集計 長整数 クライアント アプリケーションに制御を返す前にコマンドによって定義された集計の数。
LastStep ボーリアン 行セット内のデータがデザイン プロセスの最後のステップを表すかどうかを示します。 コマンドの Materialize プロパティが true に設定されている場合、この列の値は true に設定されます。

反復デザインとバッチ デザインの両方で、各 DesignAggregations コマンドの後に返される行セットに含まれるデザイン統計を使用できます。 反復的な設計では、設計統計を使用して進行状況を特定して表示できます。 集計をバッチで設計する場合は、デザイン統計を使用して、コマンドによって作成された集計の数を決定できます。

こちらもご覧ください

Analysis Services での XMLA を使用した開発