Analysis Services オブジェクトのバッチ処理
Analysis Services では、Batch コマンドを使用して、1 つの要求で複数の処理コマンドをサーバーに送信することができます。 バッチ処理では、どのオブジェクトがどの順序で処理されるのかを制御できます。 また、バッチは、一連のスタンドアロン ジョブとして実行するか、1 つのプロセスが失敗したときにバッチ全体をロールバックするトランザクションとして実行することもできます。
バッチ処理では、変更をコミットするのに必要な時間をまとめることで短縮し、データの可用性を最大にします。 ディメンションを完全に処理すると、そのディメンションを使用するパーティションには未処理のマークが付きます。 その結果、未処理のパーティションを含むキューブは参照できなくなります。 この問題は、バッチ処理ジョブを使用し、影響を受けるパーティションと共にディメンションを処理することで対処できます。 バッチ処理ジョブをトランザクションとして実行すると、すべての処理が完了するまで、そのトランザクションに含まれるすべてのオブジェクトをクエリ用に使用できます。 トランザクションが変更をコミットするときに、影響を受けるオブジェクトはロックされるため、オブジェクトは一時的に使用できなくなります。ただし、変更をコミットするために必要な全体の時間は、オブジェクトを個々に処理した場合よりも短縮されます。
このトピックでは、ディメンションおよびパーティションを完全に処理する手順を示します。 バッチ処理には、増分処理などの他の処理オプションを含めることもできます。 この手順を正しく実行するためには、少なくとも 2 つのディメンションと 1 つのパーティションを含む既存の Analysis Services データベースを使用する必要があります。
このトピックのセクションは次のとおりです。
SQL Server データ ツールでのバッチ処理
Management Studio での XMLA を使用したバッチ処理
SQL Server データ ツールでのバッチ処理
SQL Server Data Tools でオブジェクトを処理するには、そのオブジェクトを含んでいるプロジェクトを配置する必要があります。 詳細については、「Analysis Services プロジェクトの配置 (SSDT)」を参照してください。
SQL Server Data Tools を開きます。
配置されているプロジェクトを開きます。
ソリューション エクスプローラーで、配置されたプロジェクトの [ディメンション] フォルダーを展開します。
Ctrl キーを押しながら、[ディメンション] フォルダーに一覧表示されている各ディメンションをクリックします。
選択したディメンションを右クリックし、[処理] をクリックします。
Ctrl キーを押しながら、[オブジェクト一覧] に表示されている各ディメンションをクリックします。
選択したディメンションを右クリックし、[完全処理] を選択します。
バッチ処理ジョブをカスタマイズするには、[設定の変更] をクリックします。
[処理オプション] で、以下の設定を行います。
[処理順序] を [シーケンシャル] に、[トランザクション モード] を [1 つのトランザクション] に設定します。
[書き戻しテーブル オプション] を [既存のデータを使用する] に設定します。
[影響を受けたオブジェクト] の [影響を受けたオブジェクトを処理する] チェック ボックスをオンにします。
[ディメンション キーのエラー] タブをクリックします。 [既定のエラー構成を使用する] が選択されていることを確認します。
[OK] をクリックし、[設定の変更] 画面を閉じます。
[ディメンションの処理] 画面で [実行] をクリックし、処理ジョブを開始します。
[状態] ボックスに "処理が成功しました。" と表示されたら、[閉じる] をクリックします。
[ディメンションの処理] 画面で [閉じる] をクリックします。
Management Studio での XMLA を使用したバッチ処理
バッチ処理を実行する XMLA スクリプトを作成することができます。 まず、各オブジェクトに対して、Management Studio で XMLA スクリプトを生成し、次にそれらを対話形式で、またはスケジュールされているタスク内で実行する単一の XMLA クエリに統合します。
手順の詳細については、「SQL Server エージェントで SSAS 管理タスクのスケジュール設定を行う」の例 2 を参照してください。