Sequence コマンド (TMSL)

適用対象:SQL Server 2016 以降の Analysis Services Azure Analysis Services Fabric/Power BI Premium

Sequence コマンドを使用して、Analysis Services のインスタンスでバッチ モードで連続する一連の操作を実行します。 トランザクションを成功させるには、コマンド全体とそのすべてのコンポーネント パーツが完了する必要があります。

複数のオブジェクトを同時に処理するために並列で実行される Refresh コマンドを除き、次のコマンドを順番に実行できます。

要求

maxParallelism は、 Refresh 操作を順番に実行するか並列で実行するかを決定する省略可能なプロパティです。

既定の動作では、できるだけ多くの並列処理を使用します。 Sequence 内に Refresh を埋め込むことで、操作を 1 つのスレッドのみに制限するなど、処理中に使用されるスレッドの正確な数を制御できます。

注意

maxParallelism に割り当てられた整数によって、処理中に使用されるスレッドの最大数が決まります。 有効な値は、任意の正の整数です。 値を 1 に設定すると、並列ではありません (1 つのスレッドが使用されます)。

Refresh のみが並列で実行されます。 固定数のスレッドを使用するように maxParallelism を変更する場合は、 Refresh コマンド (TMSL) のプロパティを必ず確認して、潜在的な影響を理解してください。 複数のスレッドを使用可能にした場合でも、並列処理を損なうような方法でプロパティを設定できます。 次の一連の更新の種類を使用すると、並列処理の最適なレベルが得られます。

  • 最初に、ClearValues を使用してすべてのオブジェクトに対して Refresh を指定します

  • 次に、DataOnly を使用してすべてのオブジェクトに対して Refresh を指定します

  • 最後に、Full、Calculate、Automatic、または Add を使用して、すべてのオブジェクトの更新を指定します

これに関するバリエーションは並列処理を損ないます。

{   
  "sequence":    
    {   
      "maxParallelism": 3,   
      "operations": [   
        {   
          "mergepartitions": {   
            "sources": [   
              {   
                "database": "salesdatabase",   
                "table": "Sales",   
                "partition": "partition1"   
              },   
              {   
                "database": "salesdatabase",   
                "table": "Sales",   
                "partition": "partition2"   
              }   
            ]   
          }   
        },   
        {   
          "refresh": {   
            "type": "calculate",   
            "objects": [
              {   
              "database": "salesdatabase"   
              }
            ] 
          }   
        }   
      ]   
    }      
}   

Response

コマンドが成功したときに空の結果を返します。 それ以外の場合は、XMLA 例外が返されます。

使用法 (エンドポイント)

このコマンド要素は、XMLA エンドポイント全体で Execute メソッドのステートメントで使用され、次の方法で公開されます。

  • SQL Server Management Studio (SSMS) の XMLA ウィンドウとして

  • invoke-ascmd PowerShell コマンドレットへの入力ファイルとして

  • SSIS タスクまたはSQL Server エージェント ジョブへの入力として

SSMS からこのコマンドの既製スクリプトを生成することはできません。 代わりに、例から始めるか、独自の例を記述できます。