Quais Valores Calcular Dinamicamente

Calcular dinamicamente alguns valores de dados diminui o tempo de cálculo em batch e o uso do disco, mas pode aumentar o tempo de recuperação. Use as diretrizes descritas nos tópicos a seguir ao decidir quais membros do Essbase calcular dinamicamente.

Você pode marcar qualquer membro como Cálculo Dinâmico, exceto para membros de nível 0 que não têm uma fórmula, membros somente para label e membros compartilhados.

Quais membros você escolhe para calcular dinamicamente depende da estrutura do banco de dados e do equilíbrio entre (1) a necessidade de tempo de cálculo reduzido e uso de disco e (2) a necessidade de recuperação rápida de dados para os usuários.

No banco de dados Amostra Básica, a dimensão Ano é Cálculo Dinâmico.

Figura 21-1 Exemplo de Estrutura Básica Mostrando Membros do Cálculo Dinâmico


Dimensão de ano com membros de Cálculo Dinâmico

No Smart View, os usuários podem exibir dicas visuais para distinguir valores calculados dinamicamente.

Ao desenvolver consultas que incluam valores calculados dinamicamente, considere o uso da opção Navegar sem Dados do Smart View, para que o Essbase não calcule e armazene valores dinamicamente enquanto as consultas de teste são criadas.

Membros Densa e Cálculo Dinâmico

Bons candidatos para membros do Essbase Cálculo Dinâmico em uma dimensão densa incluem membros de nível superior e membros de nível 0 com fórmulas simples.

Considere fazer as seguintes alterações nos membros de dimensões densas:

  • Marque os membros de nível superior de dimensões densas como Cálculo Dinâmico.

  • Tente marcar membros de nível 0 de dimensões densas com fórmulas simples como Cálculo Dinâmico e avalie o aumento no tempo de recuperação.

    As fórmulas simples não exigem que o Essbase execute um cálculo caro. Fórmulas contendo funções financeiras ou operadores multidimensionais (->) são fórmulas complexas.

Membros Esparsos e Cálculo Dinâmico

Bons candidatos para membros do Cálculo Dinâmico do Essbase em uma dimensão esparsa incluem membros de nível superior sem muitos filhos e membros com fórmulas.

Considere fazer as seguintes alterações nos membros de dimensões esparsas:

  • Marque alguns membros de nível superior de dimensões esparsas que tenham seis ou menos filhos como Cálculo Dinâmico.

  • Marque membros de dimensão esparsa com fórmulas complexas como Cálculo Dinâmico.

    Uma fórmula complexa requer que o Essbase execute um cálculo caro. Por exemplo, qualquer fórmula que contenha uma função financeira é uma fórmula complexa. Consulte Fórmulas de Membro do Essbase Complexo

  • Marque os membros de nível superior em uma dimensão que você frequentemente reestrutura como Cálculo Dinâmico.

  • Não marque membros de dimensão esparsa de nível superior que tenham 20 ou mais descendentes como Cálculo Dinâmico.

Relacionamentos Pai-Filho e Cálculo Dinâmico

Pais com um filho

Se um membro pai tiver um membro filho e você marcar o filho como Cálculo Dinâmico, você também deverá marcar o pai como Cálculo Dinâmico.

No entanto, se um membro pai tiver um membro filho e o pai for um membro do Cálculo Dinâmico, você não precisará marcar o filho como Cálculo Dinâmico.

Dependências de Cálculo Dinâmico no Cálculo em Batch

Se o cálculo de um membro depender do cálculo de membros filhos do Cálculo Dinâmico, o Essbase deverá calcular os membros filhos primeiro durante o cálculo do banco de dados em lote para calcular o pai. Portanto, o tempo de cálculo regular não é reduzido. Este requisito aplica-se a membros de dimensões esparsas e densas.

Por exemplo, na figura abaixo, Qtr1 é um membro do Cálculo Dinâmico. Seus filhos, Jan, Fev e Mar, não são dinâmicos. Seu pai, Year, não é dinâmico. Quando o Essbase calcula o Ano durante um cálculo em lote, ele deve consolidar os valores de seus filhos, incluindo o Trim1. Portanto, deve levar mais tempo para calcular Qtr1, embora Qtr1 seja Cálculo Dinâmico.

Figura 21-2 Dimensão de Ano com Trim1 como Membro do Cálculo Dinâmico


Esta imagem mostra uma dimensão Year com Qtr1 expandido para Jan, Fev e Março, e apenas Qtr1 é dinâmico.

Scripts de Cálculo e Cálculo Dinâmico

Não é possível fazer um cálculo de script de cálculo de um membro do Cálculo Dinâmico. Se você estiver usando um script de cálculo para calcular um membro explicitamente, não marque esse membro como Cálculo Dinâmico.

Quando o Essbase calcula uma instrução CALC ALL ou CALC DIM em um script de cálculo, ele ignora o cálculo dos membros do Cálculo Dinâmico.

Da mesma forma, se uma função de conjunto de membros (por exemplo, @CHILDREN ou @SIBLINGS) for usada para especificar a lista de membros a serem calculados, o Essbase ignorará o cálculo de qualquer membro do Cálculo Dinâmico na lista resultante.

Se você especificar um membro do Cálculo Dinâmico explicitamente em um script de cálculo, o script de cálculo falhará.

Por exemplo, o seguinte script de cálculo será válido somente se Qtr1 não for um membro do Cálculo Dinâmico:

FIX (East, Colas)
   Qtr1;
ENDFIX

Fórmulas e Membros Calculados Dinamicamente

Você pode usar membros do Cálculo Dinâmico em fórmulas de outline do Essbase, mas não como destinos de fórmula em scripts de cálculo.

É possível incluir um membro calculado dinamicamente em uma fórmula ao aplicar a fórmula ao outline. Por exemplo, se Qtr1 for um membro do Cálculo Dinâmico, você poderá colocar a seguinte fórmula no Qtr1 no outline do banco de dados:

Qtr1 = Jan + Feb;

Não é possível tornar um membro calculado dinamicamente o destino de um cálculo de fórmula em um script de cálculo. O Essbase não reserva memória para um valor calculado dinamicamente e não pode atribuir um valor a ele. Por exemplo, se Qtr1 for um membro do Cálculo Dinâmico, o Essbase exibirá um erro de sintaxe se você incluir a seguinte fórmula em um script de cálculo:

Qtr1 = Jan + Feb;

Se Qtr1 for um membro do Cálculo Dinâmico e Ano não for, você poderá usar a seguinte fórmula em um script de cálculo:

Year = Qtr1 + Qtr2;

Esta fórmula é válida porque o Essbase não atribui um valor ao membro calculado dinamicamente.

Observação:

Quando você faz referência a um membro calculado dinamicamente, seja em uma fórmula de outline ou em um script de cálculo, o Essbase interrompe o cálculo regular para fazer o cálculo dinâmico, o que afeta o desempenho.

Scripts e Membros Calculados Dinamicamente

Para evitar o excesso de cálculo quando houver fórmulas de membro do Cálculo Dinâmico dependentes de tempo de execução, você pode adicionar SET FRMLRTDYNAMIC OFF ao script de cálculo do Essbase.

A fase de pré-processamento de um script de cálculo não pode determinar se um outline contém membros densos do Cálculo Dinâmico. Se um script contiver fórmulas dependentes de tempo de execução, o Essbase deverá calcular todos os membros densos do Cálculo Dinâmico quando o script for executado. O uso do comando de cálculo SET FRMLRTDYNAMIC OFF melhora o desempenho ao interromper o cálculo desses membros do Cálculo Dinâmico.