Design para Desempenho de Cálculo

Para otimizar o desempenho de cálculo de um cubo de armazenamento em bloco do Essbase, considere o impacto do tamanho e da densidade do bloco de dados, a eficiência de fórmulas e scripts de cálculo e as maneiras de ajustar as características do outline (como ordem de dimensões esparsas, uso de níveis e dimensão Tempo).

Você pode configurar um banco de dados para otimizar o desempenho do cálculo.

A melhor configuração para o site depende da natureza e do tamanho do banco de dados. Use as informações nos tópicos a seguir apenas como diretrizes.

Tamanho do Bloco e Densidade do Bloco

Para que os cubos de armazenamento em blocos do Essbase tenham desempenho de cálculo ideal, saiba como o tamanho do bloco de dados e a densidade do bloco podem afetar o desempenho e o armazenamento. Revise as estatísticas de bloco usando a interface Web do Essbase ou MaxL.

Um tamanho de bloco de dados de 8 Kb a 100 Kb fornece desempenho ideal na maioria dos casos.

Se os blocos de dados forem muito menores que 8 KB, o índice geralmente será muito grande, forçando o Essbase a gravar e recuperar o índice do disco. Esse processo atrasa o cálculo.

Se os blocos de dados forem muito maiores que 100 KB, o Cálculo Inteligente não funcionará de forma eficaz. Consulte Cálculo Inteligente para Cubos de Armazenamento em Blocos.

Para otimizar desempenho de cálculo e armazenamento de dados, talvez seja necessário equilibrar a densidade do bloco e tamanho dos blocos de dados, reorganizando a configuração da dimensão densa e esparsa do banco. Tenha estas sugestões em mente:

  • Mantenha o tamanho do bloco de dados entre 8 KB e 100 KB com a maior densidade de bloco possível.

  • Execute cálculos de teste das configurações mais promissoras de um cubo que contenha dados representativos. Verifique os resultados para determinar a configuração que produz o melhor desempenho de cálculo.

  • Considere o uso do modo híbrido. Em um cubo de modo híbrido, você pode personalizar facilmente a ordem de solução em vez de reorganizar a ordem dimensional.

Exiba informações sobre um cubo, incluindo o número potencial e real de blocos de dados e o tamanho do bloco de dados, usando a interface Web do Essbase ou a MaxL.


As estatísticas de armazenamento de um cubo estão disponíveis em armazenamento > estatísticas. A imagem exibe algumas dessas estatísticas para o cubo Sample Basic, incluindo: Número de blocos existentes 374, Tamanho do Bloco (B) 2.112, Blocos Existentes de Nível 0 177 e muito mais.

A instrução equivalente para exibir estatísticas de bloco usando MaxL é:

query database appname.dbname get dbstats data_block;

Ordem de Dimensões Esparsas

Em cubos de armazenamento em bloco do Essbase, o desempenho do cálculo pode ser melhorado colocando dimensões esparsas menores primeiro na ordem do outline.

Como alternativa, considere o uso do modo híbrido. Em um cubo de modo híbrido, você pode personalizar facilmente a ordem de solução em vez de reorganizar a ordem dimensional.

Você pode melhorar o desempenho do cálculo alterando a ordem das dimensões esparsas padrão (sem atributo) no outline. Ordene as dimensões esparsas padrão pelo número de membros que elas contêm, colocando a dimensão que contém o menor número de membros primeiro. Este arranjo pode melhorar:

  • A função do cache da calculadora pode ter uma melhoria de desempenho de aproximadamente 10% para um outline com uma grande dimensão (por exemplo, um contendo 1000 membros).

  • Cálculo paralelo, se ativado, mais provável será usado se a dimensão esparsa padrão com a maioria dos membros for a última dimensão esparsa padrão no outline.

Cubos Carregados Incrementalmente

Para cubos de armazenamento em bloco do Essbase que são carregados de forma incremental (periodicamente) com dados, o desempenho do cálculo pode ser melhorado ao tornar a dimensão Tempo esparsa no outline.

Muitas empresas carregam dados de forma incremental. Por exemplo, uma empresa pode carregar dados todos os meses para esse mês.

Para otimizar o desempenho do cálculo ao carregar dados de forma incremental, torne a dimensão marcada como tempo uma dimensão esparsa. Se a dimensão de tempo for esparsa, o banco de dados conterá um bloco de dados para cada período. Quando você carrega dados por período, o Essbase acessa menos blocos de dados porque menos blocos contêm o período relevante. Assim, se você tiver o Cálculo Inteligente ativado, somente os blocos de dados marcados como sujos serão recalculados. Por exemplo, se você carregar dados para março, somente os blocos de dados para março e os pais dependentes de março serão atualizados.

No entanto, tornar a dimensão de tempo esparsa quando é naturalmente densa pode aumentar significativamente o tamanho do índice, criando um desempenho possivelmente mais lento devido a mais atividade física de E/S para acomodar o grande índice.

Se a dimensão marcada como tempo for densa, você ainda receberá algum benefício do Cálculo Inteligente quando fizer uma carga de dados parcial para uma dimensão esparsa. Por exemplo, se o Produto for esparso e você carregar dados para um produto, o Essbase recalculará apenas os blocos afetados pela carga parcial, embora o tempo seja denso e o Cálculo Inteligente esteja ativado.

Outlines com Várias Dimensões Lisas

Para cubos de armazenamento em bloco do Essbase que têm milhares de membros em dimensões simples, o desempenho do cálculo pode ser melhorado pela adição de níveis no outline.

O desempenho do cálculo poderá ser afetado se um outline de cubo tiver várias dimensões simples. Uma dimensão plana tem muito poucos pais, e cada pai tem muitos milhares de filhos; em outras palavras, as dimensões planas têm muitos membros e poucos níveis.

Você pode melhorar o desempenho de contornos com várias dimensões planas adicionando níveis intermediários ao contorno.

Fórmulas e Scripts de Cálculo

Para otimizar scripts de cálculo e fórmulas para cubos de armazenamento em blocos, execute etapas para reduzir o número de ciclos que o Essbase faz por meio de blocos de dados.

Você pode obter melhorias significativas no desempenho do cálculo agrupando cuidadosamente fórmulas e dimensões em um script de cálculo. Dessa forma, você pode garantir que o Essbase percorra os blocos de dados no cubo o menor número de vezes possível durante um cálculo.

Ordene comandos em scripts de cálculo para tornar o cálculo do banco de dados o mais simples possível. Considere aplicar todas as fórmulas ao outline e usar um cálculo padrão (CALC ALL).

Consulte Desenvolver Scripts de Cálculo para Cubos de Armazenamento em Blocos e Aprovações de Cálculo.