Partilhar via


Criando agregações (XMLA)

Designs de agregação estão associados a partições de um determinado grupo de medidas para garantir que as partições usem a mesma estrutura ao armazenarem agregações. Usar a mesma estrutura de armazenamento para partições permite definir facilmente partições que podem ser mescladas posteriormente usando o comando MergePartitions . Para obter mais informações sobre designs de agregação, consulte Agregações e Designs de Agregação.

Para definir agregações para um design de agregação, você pode usar o comando DesignAggregations no XMLA (XML for Analysis). O comando DesignAggregations tem propriedades que identificam o design de agregação a ser usado como referência e mostram como controlar o processo de design com base nessa referência. Usando o comando DesignAggregations e suas propriedades, você pode criar agregações iterativamente ou em lote e depois exibir as estatísticas do design resultante para avaliar o processo de design.

Especificando um design de agregação

A propriedade Object do DesignAggregations comando deve conter uma referência de objeto a um design de agregação existente. A referência de objeto contém um identificador de banco de dados, um identificador de cubo, um identificador de grupo de medidas e um identificador de design de agregação. Se o design de agregação ainda não existir, ocorrerá um erro.

Controlando o processo de design

Você pode usar as seguintes propriedades do comando DesignAggregations para controlar o algoritmo usado na definição de agregações para o design de agregação:

  • A propriedade Steps determina quantas iterações o DesignAggregations comando deve realizar antes de retornar o controle para o aplicativo cliente.

  • A propriedade Time determina quantos milissegundos o DesignAggregations comando deve tomar antes de retornar o controle para o aplicativo cliente.

  • A propriedade Optimization determina o percentual estimado de melhoria de desempenho que o DesignAggregations comando deve tentar alcançar. Se você estiver criando agregações iterativamente, só terá de enviar essa propriedade no primeiro comando.

  • A propriedade Storage determina a quantidade estimada de armazenamento em disco, em bytes, usada pelo DesignAggregations comando . Se você estiver criando agregações iterativamente, só terá de enviar essa propriedade no primeiro comando.

  • A propriedade Materialize determina se o DesignAggregations comando deve criar as agregações definidas durante o processo de design. Se estiver criando agregações iterativamente, essa propriedade deve ser definida como falsa até que você esteja pronto para salvar as agregações criadas. Quando definida como verdadeira, o processo de design atual terminará e as agregações definidas serão adicionadas ao design de agregação especificado.

Especificando consultas

O comando DesignAggregations dá suporte ao comando de otimização baseado em uso, incluindo um ou mais Query elementos na propriedade Queries . A Queries propriedade pode conter um ou mais elementos Query . Se a propriedade Queries não contiver elementos de Query, o design de agregação especificado no elemento de Object usará uma estrutura padrão com um conjunto geral de agregações. Esse conjunto geral de agregações é criado para atender aos critérios especificados nas propriedades Optimization e Storage do comando DesignAggregations.

Cada elemento Query representa uma meta de consulta usada pelo processo de design para definir agregações que se destinam às consultas usadas com mais frequência. Você pode especificar suas próprias consultas de meta ou usar as informações armazenadas por uma instância do Microsoft SQL Server Analysis Services no log de consultas para recuperar informações sobre as consultas usadas com mais frequência. O Assistente de Otimização com Base no Uso usa o log de consultas para recuperar consultas de meta com base no tempo, no uso ou em um usuário especificado quando envia um comando DesignAggregations. Para obter mais informações, consulte Ajuda F1 do Assistente de Otimização Baseada em Uso.

Se você estiver criando agregações iterativamente, só precisará passar consultas de meta no primeiro DesignAggregations comando porque a instância do Analysis Services armazena essas consultas de meta e usa essas consultas durante os comandos subsequentes DesignAggregations . Após transmitir as metas de consulta no primeiro comando DesignAggregations de um processo iterativo, qualquer comando DesignAggregations subsequente que contém metas de consulta na propriedade Queries gerará um erro.

O elemento Query contém um valor delimitado por vírgula com os seguintes argumentos:

Frequency,Dataset[,Dataset...]

Frequência
Um fator de ponderação que corresponde ao número de vezes que a consulta foi executada previamente. Se o Query elemento representar uma nova consulta, o valor Frequency representará o fator de ponderação usado pelo processo de design para avaliar a consulta. À medida que o valor de frequência fica maior, o peso colocado na consulta durante processo de design aumenta.

Conjunto de dados
Uma sequência numérica que especifica quais atributos de uma dimensão devem ser incluídos na consulta. Essa sequência deve ter o mesmo número de caracteres do número de atributos na dimensão. Zero (0) indica que o atributo na posição ordinal especificada não está incluído na consulta para a dimensão especificada e um (1) indica que o atributo na posição ordinal especificada está incluído na consulta para a dimensão especificada.

Por exemplo, a sequência “011” faz referência a uma consulta que envolve uma dimensão com três atributos, dos quais o segundo e o terceiro estão incluídos na consulta.

Observação

Alguns atributos não são considerados no conjunto de dados. Para obter mais informações sobre atributos excluídos, consulte Elemento Query (XMLA).

Cada dimensão no grupo de medidas que contém o design de agregação é representada por um valor de Conjunto de dados no Query elemento . A ordem de valores Dataset deve coincidir com a ordem de dimensões incluída no grupo de medidas.

Criando agregações usando processos iterativos ou em lote

Você pode usar o comando DesignAggregations como parte de um processo iterativo ou de um processo em lote, dependendo da interatividade exigida pelo processo de design.

Criando agregações usando um processo iterativo

Para criar agregações de design de forma iterativa, envie diversos comandos DesignAggregations para oferecer um controle refinado sobre o processo de design. O Assistente de Design de Agregação usa essa mesma abordagem para fornecer controle refinado sobre o processo de design. Para obter mais informações, consulte Ajuda F1 do Assistente de Design de Agregação.

Observação

Uma sessão explícita é necessária para a criação iterativa de agregações. Para obter mais informações sobre sessões explícitas, consulte Gerenciando conexões e sessões (XMLA).

Para iniciar o processo iterativo, primeiro envie um comando DesignAggregations com as seguintes informações:

  • Os valores das propriedades Storage e Optimization para os quais todo o processo de design é destinado.

  • Os valores das propriedades Steps e Time aos quais a primeira etapa do processo de design se limita.

  • Se você quiser otimização baseada em uso, a propriedade Queries que contém as consultas de meta para as quais todo o processo de design é destinado.

  • A propriedade Materialize definida como falsa. A definição dessa propriedade como falsa indica que o processo de design não salvará as agregações definidas no design de agregação quando o comando for concluído.

Quando o primeiro comando DesignAggregations termina, retorna um conjunto de linhas com as estatísticas de design. Você pode avaliar essas estatísticas de design para determinar se o processo de design deve continuar ou se ele foi concluído. Se o processo tiver de continuar, envie outro comando DesignAggregations com os valores Steps e Time aos quais esta etapa do processo de design se limita. Avalie as estatísticas resultantes e determine se o processo de design deve continuar. Esse processo iterativo de enviar comandos DesignAggregations e de avaliar os resultados continuará até que você atinja suas metas e tenha um conjunto apropriado de agregações definido.

Depois de obter o conjunto de agregações desejado, envie um comando DesignAggregations final. Esse comando DesignAggregations final deve ter sua propriedade Steps definida como 1 e sua propriedade Materialize definida como verdadeira. Usando essas configurações, esse comando DesignAggregations final completa o processo de design e salva a agregação definida para o design de agregação.

Criando agregações usando um processo em lote

Você também pode criar agregações em um processo em lote ao enviar um único comando DesignAggregations com os valores das propriedades Steps, Time, Storage e Optimization aos quais todo o processo de design se destina e está limitado. Se você quiser otimização fundada em uso, as consultas de meta as quais o processo de design se destina também deverão ser incluídas na propriedade Queries. Além disso, verifique se a propriedade Materialize foi definida como verdadeira, para que o processo de design salve as agregações definidas para o design de agregação quando o comando terminar.

Você pode criar agregações usando um processo em lote em uma sessão implícita ou em uma sessão explícita. Para obter mais informações sobre sessões implícitas e explícitas, consulte Gerenciando conexões e sessões (XMLA).

Retornando estatísticas de design

Quando o comando DesignAggregations devolve o controle ao aplicativo cliente, retorna um conjunto de linhas com uma única linha, que representa as suas estatísticas de design. O conjunto de linhas contém as colunas listadas na tabela a seguir.

Coluna Tipo de dados Descrição
Etapas Integer O número de etapas executadas pelo comando antes que ele devolva o controle ao aplicativo cliente.
Hora Long integer O número de milissegundos que o comando leva antes de devolver o controle ao aplicativo cliente.
Optimization Double A porcentagem estimada de aperfeiçoamento de desempenho atingida pelo comando antes de devolver o controle ao aplicativo cliente.
Armazenamento Long integer O número estimado de bytes que o comando leva antes de devolver o controle ao aplicativo cliente.
Agregações Long integer O número de agregações definido pelo comando antes de devolver o controle ao aplicativo cliente.
LastStep Boolean Indica se os dados do conjunto de linhas representam a última etapa no processo de design. Se a Materialize propriedade do comando tiver sido definida como true, o valor dessa coluna será definido como true.

Você pode usar as estatísticas de design contidas no conjunto de linhas retornadas depois de cada comando DesignAggregations no design iterativo e no design em lote. No design iterativo, você pode usar as estatísticas de design para determinar e exibir o andamento. Quando estiver criando agregações em lote, poderá usar as estatísticas de design para determinar o número de agregações criadas pelo comando.

Consulte Também

Desenvolvendo com XMLA no Analysis Services