Partilhar via


Criando agregações (XMLA)

Os designs de agregação são associados às partições de um grupo de medidas específico para garantir que as partições usem a mesma estrutura ao armazenar 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 DesignAggregations comando tem propriedades que identificam qual design de agregação usar como referência e como controlar o processo de design com base nessa referência. Usando o DesignAggregations comando e suas propriedades, você pode criar agregações iterativamente ou em lote e exibir as estatísticas de design resultantes 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 DesignAggregations comando para controlar o algoritmo usado para definir agregações para o design de agregação:

  • A propriedade Etapas 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ó precisará enviar essa propriedade no primeiro comando.

  • A propriedade Armazenamento determina a quantidade estimada de armazenamento em disco, em bytes, usada pelo DesignAggregations comando. Se você estiver criando agregações iterativamente, só precisará 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 você estiver criando agregações iterativamente, essa propriedade deverá ser definida como false até que você esteja pronto para salvar as agregações projetadas. Quando definido como true, o processo de design atual termina e as agregações definidas sã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 de consulta . Se a Queries propriedade não contiver elementos Query , o design de agregação especificado no Object elemento usará uma estrutura padrão que contém um conjunto geral de agregações. Esse conjunto geral de agregações foi projetado para atender aos critérios especificados no Optimization comando e Storage às propriedades do DesignAggregations comando.

Cada Query elemento representa uma consulta de meta que o processo de design usa para definir agregações direcionadas à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 mais usadas. O Assistente de Otimização de Usage-Based usa o log de consultas para recuperar consultas de meta com base no tempo, no uso ou em um usuário especificado ao enviar um DesignAggregations comando. Para obter mais informações, consulte Usage-Based Ajuda F1 do Assistente de Otimização.

Se estiver criando agregações iterativamente, você 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 . Depois de passar consultas de meta no primeiro DesignAggregations comando de um processo iterativo, qualquer comando subsequente DesignAggregations que contenha consultas de meta na Queries propriedade gerará um erro.

O Query elemento contém um valor delimitado por vírgula que contém 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 anteriormente. 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 se torna maior, o peso que é colocado na consulta durante o processo de design aumenta.

Conjunto de dados
Uma cadeia de caracteres numérica que especifica quais atributos de uma dimensão devem ser incluídos na consulta. Essa cadeia de caracteres deve ter o mesmo número de caracteres que o 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, enquanto um (1) indica que o atributo na posição ordinal especificada está incluído na consulta para a dimensão especificada.

Por exemplo, a cadeia de caracteres "011" se refere a uma consulta que envolve uma dimensão com três atributos, dos quais o segundo e o terceiro atributos são incluídos na consulta.

Observação

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

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 dos valores do conjunto de dados deve corresponder à ordem das dimensões incluídas no grupo de medidas.

Criando agregações usando processos iterativos ou em lotes

Você pode usar o DesignAggregations comando 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 iterativamente, envie vários DesignAggregations comandos para fornecer controle fino sobre o processo de design. O Assistente de Design de Agregação usa essa mesma abordagem para fornecer um controle fino 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 criar agregações iterativamente. Para obter mais informações sobre sessões explícitas, consulte Gerenciando conexões e sessões (XMLA).

Para iniciar o processo iterativo, primeiro você envia um DesignAggregations comando que contém as seguintes informações:

  • Os Storage valores e Optimization a propriedade nos quais todo o processo de design é direcionado.

  • Os Steps valores e Time a propriedade nos quais a primeira etapa do processo de design é limitada.

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

  • A Materialize propriedade definida como false. Definir essa propriedade como false indica que o processo de design não salva as agregações definidas no design de agregação quando o comando é concluído.

Quando o primeiro DesignAggregations comando é concluído, o comando retorna um conjunto de linhas que contém estatísticas de design. Você pode avaliar essas estatísticas de design para determinar se o processo de design deve continuar ou se o processo de design foi concluído. Se o processo deve continuar, você envia outro DesignAggregations comando que contém os valores e Time os valores com os Steps quais essa etapa do processo de design é limitada. Você avalia as estatísticas resultantes e determina se o processo de design deve continuar. Esse processo iterativo de enviar DesignAggregations comandos e avaliar os resultados continua até atingir suas metas e ter um conjunto apropriado de agregações definido.

Depois de acessar o conjunto de agregações desejado, envie um comando final DesignAggregations . Este comando final DesignAggregations deve ter sua Steps propriedade definida como 1 e sua Materialize propriedade definida como true. Usando essas configurações, esse comando final DesignAggregations conclui o processo de design e salva a agregação definida no design de agregação.

Criando agregações usando um processo em lote

Você também pode criar agregações em um processo em lotes enviando um único DesignAggregations comando que contém os Stepsvalores de propriedade e Optimization , TimeStorageno qual todo o processo de design é direcionado e limitado. Se você quiser otimização baseada em uso, as consultas de meta nas quais o processo de design é direcionado também devem ser incluídas na Queries propriedade. Verifique também se a Materialize propriedade está definida como true, de modo que o processo de design salve as agregações definidas no design de agregação quando o comando for concluído.

Você pode criar agregações usando um processo em lote em uma sessão implícita ou 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 retorna o DesignAggregations controle para o aplicativo cliente, o comando retorna um conjunto de linhas que contém uma única linha que representa as estatísticas de design do comando. O conjunto de linhas contém as colunas listadas na tabela a seguir.

Coluna Tipo de dados Descrição
Etapas Número Inteiro O número de etapas executadas pelo comando antes de retornar o controle ao aplicativo cliente.
Hora Inteiro longo O número de milissegundos tomados pelo comando antes de retornar o controle para o aplicativo cliente.
Otimização Duplo A porcentagem estimada de melhoria de desempenho obtida pelo comando antes de retornar o controle ao aplicativo cliente.
Armazenamento Inteiro longo O número estimado de bytes obtidos pelo comando antes de retornar o controle para o aplicativo cliente.
Agregações Inteiro longo O número de agregações definidas pelo comando antes de retornar o controle para o aplicativo cliente.
LastStep Booliano Indica se os dados no conjunto de linhas representam a última etapa no processo de design. Se a Materialize propriedade do comando foi definida como true, o valor dessa coluna será definido como true.

Você pode usar as estatísticas de design contidas no conjunto de linhas retornado após cada DesignAggregations comando no design iterativo e em lote. No design iterativo, você pode usar as estatísticas de design para determinar e exibir o progresso. Ao criar agregações em lote, você pode usar as estatísticas de design para determinar o número de agregações criadas pelo comando.

Consulte Também

Desenvolvimento com XMLA em Analysis Services