Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode usar o comando Batch no XMLA (XML for Analysis) para executar vários comandos XMLA usando um único método XMLA Execute . Você pode executar vários comandos contidos no Batch comando como uma única transação ou em transações individuais para cada comando, em série ou em paralelo. Você também pode especificar associações fora de linha e outras propriedades no Batch comando para processar vários objetos do Microsoft SQL Server Analysis Services.
Executando comandos de lote transacionais e não transacionais
O Batch comando executa comandos de uma das duas maneiras:
Transacional.
Se o Transaction atributo do Batch comando for definido como true, o Batch comando executará comandos todos os comandos contidos pelo Batch comando em um lote transacional de uma única transação .
Se algum comando falhar em um lote transacional, o Batch Analysis Services reverterá qualquer comando no comando executado antes do comando que falhou e o Batch comando terminará imediatamente. Todos os comandos no Batch comando que ainda não foram executados não são executados. Após o término do Batch comando, o Batch comando relata os erros que ocorreram para o comando com falha.
Não transacional
Se o Transaction atributo for definido como false, o Batch comando executará cada comando contido pelo Batch comando em uma transação separada, um lote não transacional . Se algum comando falhar em um lote não transacional, o Batch comando continuará executando comandos após o comando que falhou. Depois que o Batch comando tenta executar todos os comandos que o Batch comando contém, o Batch comando relata todos os erros que ocorreram.
Todos os resultados retornados por comandos contidos em um Batch comando são retornados na mesma ordem em que os comandos estão contidos no Batch comando. Os resultados retornados por um Batch comando variam de acordo com se o Batch comando é transacional ou não transacional.
Observação
Se um Batch comando contiver um comando que não retorna a saída, como o comando Lock , e esse comando for executado com êxito, o Batch comando retornará um elemento raiz vazio dentro do elemento de resultados. O elemento vazio root garante que cada comando contido em um Batch comando possa ser correspondido com o elemento apropriado root para os resultados desse comando.
Retornando resultados dos resultados do lote transacional
Os resultados de comandos executados em um lote transacional não são retornados até que todo Batch o comando seja concluído. Os resultados não são retornados depois que cada comando é executado porque qualquer comando que falha em um lote transacional faria com que todo Batch o comando e todos os comandos que contêm fossem revertidos. Se todos os comandos forem iniciados e executados com êxito, o elemento de retorno do elemento ExecuteResponse retornado pelo Execute método para o Batch comando contém um elemento de resultados , que, por sua vez, contém um root elemento para cada comando executado com êxito contido no Batch comando. Se qualquer comando no Batch comando não puder ser iniciado ou não for concluído, o Execute método retornará uma falha SOAP para o Batch comando que contém o erro do comando que falhou.
Retornando resultados de resultados de lote não transacionais
Os resultados de comandos executados em um lote não transacional são retornados na ordem em que os comandos estão contidos no Batch comando e como eles são retornados por cada comando. Se nenhum comando contido no Batch comando puder ser iniciado com êxito, o Execute método retornará uma falha SOAP que contém um erro para o Batch comando. Se pelo menos um comando for iniciado com êxito, o returnExecuteResponse elemento do elemento retornado pelo Execute método para o Batch comando contém um results elemento, que, por sua vez, contém um root elemento para cada comando contido no Batch comando. Se um ou mais comandos em um lote não transtransactional não puderem ser iniciados ou não forem concluídos, o root elemento para esse comando com falha conterá um elemento de erro que descreve o erro.
Observação
Desde que pelo menos um comando em um lote não transtransactional possa ser iniciado, o lote não transacional será considerado como sendo executado com êxito, mesmo que todos os comandos contidos no lote não transtransactional retornem um erro nos resultados do Batch comando.
Usando execução serial e paralela
Você pode usar o Batch comando para executar comandos incluídos em série ou em paralelo. Quando os comandos são executados em série, o próximo comando incluído no Batch comando não pode ser iniciado até que o comando em execução no momento no Batch comando seja concluído. Quando os comandos são executados em paralelo, vários comandos podem ser executados simultaneamente pelo Batch comando.
Para executar comandos em paralelo, adicione os comandos a serem executados em paralelo à propriedade Parallel do Batch comando. Atualmente, o Analysis Services pode executar apenas comandos contíguos e sequenciais do Processo em paralelo. Qualquer outro comando XMLA, como Criar ou Alterar, incluído na Parallel propriedade, é executado em série.
O Analysis Services tenta executar todos os Process comandos incluídos na Parallel propriedade em paralelo, mas não pode garantir que todos os comandos incluídos Process possam ser executados em paralelo. A instância analisa cada Process comando e, se a instância determinar que o comando não pode ser executado em paralelo, o Process comando será executado em série.
Observação
Para executar comandos em paralelo, o Transaction atributo do comando deve ser definido como true porque o Batch Analysis Services dá suporte a apenas uma transação ativa por conexão e lotes não transacionais executam cada comando em uma transação separada. Se você incluir a Parallel propriedade em um lote não transacional, ocorrerá um erro.
Limitando a execução paralela
Uma instância do Analysis Services tenta executar o máximo Process de comandos em paralelo possível, até os limites do computador no qual a instância é executada. Você pode limitar o número de comandos que executam simultaneamente definindo Process o maxParallel atributo da Parallel propriedade para um valor que indica o número máximo de Process comandos que podem ser executados em paralelo.
Por exemplo, uma Parallel propriedade contém os seguintes comandos na sequência listada:
CreateProcessAlterProcessProcessProcessDeleteProcessProcess
O maxParalleatributo l dessa Parallel propriedade é definido como 2. Portanto, a instância executa as listas anteriores de comandos, conforme descrito na seguinte lista:
O Comando 1 é executado em série porque o comando 1 é um
Createcomando e somenteProcessos comandos podem ser executados em paralelo.O comando 2 é executado serialmente após a conclusão do comando 1.
O comando 3 é executado serialmente após a conclusão do comando 2.
Os comandos 4 e 5 são executados em paralelo após a conclusão do comando 3. Embora o comando 6 também seja um
Processcomando, o comando 6 não pode ser executado em paralelo com os comandos 4 e 5 porque amaxParallelpropriedade está definida como 2.O comando 6 é executado serialmente após a conclusão dos comandos 4 e 5.
O comando 7 é executado serialmente após a conclusão do comando 6.
Os comandos 8 e 9 são executados em paralelo após a conclusão do comando 7.
Usando o Comando do Lote para processar objetos
O Batch comando contém várias propriedades opcionais e atributos incluídos especificamente para dar suporte ao processamento de vários projetos do Analysis Services:
O
ProcessAffectedObjectsatributo doBatchcomando indica se a instância também deve processar qualquer objeto que exija reprocessamento como resultado de umProcesscomando incluído noBatchcomando que processa um objeto especificado.A propriedade Bindings contém uma coleção de associações fora de linha usadas por todos os
Processcomandos noBatchcomando.A propriedade DataSource contém uma associação fora de linha para uma fonte de dados usada por todos os
Processcomandos noBatchcomando.A propriedade DataSourceView contém uma associação fora de linha para uma exibição de fonte de dados usada por todos os
Processcomandos noBatchcomando.A propriedade ErrorConfiguration especifica a maneira como o
Batchcomando lida com erros encontrados por todos osProcesscomandos contidos noBatchcomando.Importante
Um
Processcomando não poderá incluir asBindingspropriedades , ouErrorConfigurationDataSourceView,DataSourcese oProcesscomando estiver contido em umBatchcomando. Se você precisar especificar essas propriedades para umProcesscomando, forneça as informações necessárias nas propriedades correspondentes doBatchcomando que contém oProcesscomando.
Consulte Também
Elemento Batch (XMLA)
Elemento Process (XMLA)
Processamento de objeto de modelo multidimensional
Desenvolvimento com XMLA em Analysis Services