Compartilhar 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. Utilizar a mesma estrutura de armazenamento para partições permite que você defina com facilidade partições que possam ser mescladas mais tarde por meio do 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, é possível 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 comando DesignAggregations 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 que o comando DesignAggregations deve executar antes de devolver o controle ao aplicativo cliente.

  • A propriedade Time determina quantos milissegundos que o comando DesignAggregations deve levar antes de devolver o controle ao aplicativo cliente.

  • A propriedade Otimização determina a porcentagem estimada de aperfeiçoamento de desempenho que o comando DesignAggregations 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 comando DesignAggregations. Se você estiver criando agregações iterativamente, só terá de enviar essa propriedade no primeiro comando.

  • A propriedade Materialize determina se o comando DesignAggregations 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 a comandos de otimização baseados em uso ao incluir um ou mais elementos de Query na propriedade Queries. A propriedade Queries pode conter um ou mais elementos de 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 freqüência. Você pode especificar suas próprias metas 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 freqüê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 com Base no Uso.

Se estiver projetando agregações de modo iterativo, você deve transmitir metas de consulta somente no primeiro comando DesignAggregations porque a instância do Analysis Services armazena essas metas e utiliza essas consultas durante comandos DesignAggregations subseqüentes. Após transmitir as metas de consulta no primeiro comando DesignAggregations de um processo iterativo, qualquer comando DesignAggregations subseqüente 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...]

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

  • Dataset
    Uma cadeia de caracteres numérica que especifica quais atributos de uma dimensão devem ser incluídos na consulta. Essa cadeia 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 cadeia de caracteres “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çãoObservação

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

    Cada dimensão no grupo de medidas que contém o design de agregação é representado por um valor Dataset no elemento Query. 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çãoObservaçã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

Steps

Integer

O número de etapas executadas pelo comando antes que ele devolva o controle ao aplicativo cliente.

Time

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.

Storage

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 propriedade Materialize do comando foi definida como verdadeira, o valor dessa coluna será definido como verdadeiro.

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.