Sequence 命令 (TMSL)

适用于:SQL Server 2016 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

使用 Sequence 命令在 Analysis Services 实例上以批处理模式运行一组连续操作。 整个命令及其所有组件必须完成,事务才能成功。

以下命令可以按顺序运行,但 Refresh 命令除外,该命令并行运行以并发处理多个对象。

请求

maxParallelism 是一个可选属性,用于确定 刷新 操作是按顺序运行还是并行运行。

默认行为是尽可能多地使用并行度。 通过在 Sequence 中嵌入 Refresh,可以控制处理期间使用的确切线程数,包括将操作限制为仅一个线程。

注意

分配给 maxParallelism 的整数确定处理期间使用的最大线程数。 有效值为任何正整数。 将值设置为 1 不等于并行 (使用一个线程) 。

刷新 并行运行。 如果将 maxParallelism 修改为使用固定数量的线程,请务必查看 Refresh 命令 (TMSL) 的属性以了解潜在影响。 即使已提供多个线程,也可以以破坏并行度的方式设置属性。 以下刷新类型的序列将提供最佳并行度:

  • 首先,使用 ClearValues 为所有对象指定 Refresh

  • 接下来,使用 DataOnly 为所有对象指定 Refresh

  • 最后使用 Full、Calculate、Automatic 或 Add 为所有对象指定 Refresh

对此的任何变化都会破坏并行度。

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

响应

命令成功时返回空结果。 否则,将返回 XMLA 异常。

使用情况 (终结点)

此命令元素用于整个 XMLA 终结点上的 Execute 方法的语句中,以下列方式公开:

  • 作为 SQL Server Management Studio (SSMS) 中的 XMLA 窗口

  • 作为 invoke-ascmd PowerShell cmdlet 的输入文件

  • 作为 SSIS 任务或SQL Server 代理作业的输入

无法从 SSMS 为此命令生成现成的脚本。 相反,你可以从示例开始或编写自己的示例。