Команда Sequence (TMSL)

Применимо к: SQL Server 2016 и более поздних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

Используйте команду Sequence для выполнения последовательного набора операций в пакетном режиме на экземпляре служб Analysis Services. Чтобы транзакция завершилась успешно, должна завершиться вся команда и все ее компоненты.

Следующие команды можно выполнять последовательно, за исключением команды Refresh , которая выполняется параллельно для одновременной обработки нескольких объектов.

Запрос

maxParallelism является необязательным свойством, которое определяет, выполняются ли операции обновления последовательно или параллельно.

По умолчанию используется как можно больше параллелизма. Встраивая обновление в последовательность, можно управлять точным количеством потоков, используемых во время обработки, включая ограничение операции только одним потоком.

Примечание

Целое число, назначенное maxParallelism , определяет максимальное количество потоков, используемых во время обработки. Допустимыми значениями являются любые положительные целые числа. Задание значения 1 равно не параллельно (используется один поток).

Только обновление выполняется параллельно. Если вы изменяете maxParallelism для использования фиксированного количества потоков, обязательно просмотрите свойства команды Refresh (TMSL), чтобы понять возможные последствия. Можно задать свойства таким образом, чтобы подорвать параллелизм, даже если вы сделали доступными несколько потоков. Следующая последовательность типов обновлений обеспечит наилучшую степень параллелизма:

  • Сначала укажите Refresh для всех объектов с помощью ClearValues.

  • Затем укажите Обновить для всех объектов, использующих DataOnly.

  • Последнее задание параметра Обновить для всех объектов с помощью функции 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"   
              }
            ] 
          }   
        }   
      ]   
    }      
}   

Ответ

Возвращает пустой результат при успешном выполнении команды. В противном случае возвращается исключение XMLA.

Использование (конечные точки)

Этот командный элемент используется в инструкции метода Execute в конечной точке XMLA, предоставляемой следующими способами:

  • Как окно XMLA в SQL Server Management Studio (SSMS)

  • Входной файл командлета PowerShell invoke-ascmd

  • В качестве входных данных для задачи служб SSIS или задания агент SQL Server

Вы не можете создать готовый скрипт для этой команды из SSMS. Вместо этого можно начать с примера или написать свой собственный.