Simular Cálculos para Estimar o Tempo de Cálculo

Você pode simular o cálculo em um modelo do cubo de armazenamento em bloco do Essbase para estimar quanto tempo um cálculo real levaria. Para fazer isso, execute um script de cálculo com SET MSG ONLY e SET NOTICE HIGH, anote os tempos de conclusão e extrapola.

É possível simular um cálculo usando SET MSG SOMENTE em um script de cálculo. Um cálculo simulado produz resultados que ajudam a analisar o desempenho de um cálculo real baseado nos mesmos dados e estrutura.

Ao executar um cálculo simulado com um comando como SET NOTICE HIGH, você pode marcar o tempo relativo que cada dimensão esparsa leva para ser concluída. Em seguida, realizando um cálculo real em uma ou mais dimensões, você pode estimar quanto tempo o cálculo completo levará, porque o tempo que um cálculo simulado leva para ser executado é proporcional ao tempo que o cálculo real leva para ser executado.

Por exemplo, se o cálculo começar às 9:50:00 AM e o primeiro aviso for marcado com o horário às 09:50:10 AM e o segundo for marcado com o horário às 09:50:20 AM, você sabe que cada parte do cálculo levou 10 segundos. Se você executar um cálculo real apenas na primeira parte e observar que levou 30 segundos para ser executado, você sabe que a outra parte também levará 30 segundos. Se houvesse duas mensagens no total, então você saberia que o cálculo real levará aproximadamente 60 segundos (20/10 * 30 = 60 segundos).

Use os tópicos a seguir para saber como executar um cálculo simulado e como usar um cálculo simulado para estimar o tempo de cálculo.

Simular um Cálculo

Simule o cálculo em um modelo do cubo de armazenamento em bloco do Essbase executando um script de cálculo com os comandos SET MSG ONLY e SET NOTICE HIGH, e anotando os timestamps no log do aplicativo.

Para poder estimar o tempo de cálculo, você deve executar um cálculo simulado em um modelo de dados baseado no cubo real. Em seguida, você pode verificar o log do aplicativo para ver quanto tempo os cálculos levaram.

Para saber onde localizar o log do aplicativo, consulte Locais de Ambiente na Plataforma Essbase.

Para executar um cálculo simulado:

  1. Crie um modelo de dados que use todas as dimensões e todos os níveis de detalhes sobre os quais você deseja informações.
  2. Carregue todos os dados. Este procedimento calcula somente os dados carregados no cubo.
  3. Crie um script com estas entradas:
    SET MSG ONLY;
    SET NOTICE HIGH;
    CALC ALL;

    Se você estiver usando cálculos dinâmicos em dimensões densas, substitua o comando CALC ALL pelas dimensões específicas que você precisa calcular; por exemplo, CALC DIM EAST.

    Observação:

    Se você tentar validar o script, o Essbase reportará um erro. Desconsidere o erro.

  4. Execute o script.
  5. Localize a primeira mensagem de cálculo esparsa no log do aplicativo e anote a hora na mensagem.
  6. Observe a hora de cada mensagem subsequente.
  7. Calcule as dimensões densas do modelo que não estão sendo calculadas dinamicamente:
    CALC DIM (DENSE_DIM1, DENSE_DIM2, …);
  8. Calcule as dimensões esparsas do modelo:
    CALC DIM (SPARSEDIM1, SPARSEDIM2, …);
  9. Projete os intervalos nos quais as notificações ocorrerão e verifique os resultados de cálculos esparsos. Em seguida, você pode estimar o tempo de cálculo.

Consulte os comandos de cálculo:

Tempo Estimado de Cálculo

Registre os resultados do cálculo simulado e use-os para estimar o tempo real de cálculo do cubo de armazenamento em bloco do Essbase.

Para estimar o tempo total de cálculo:

  1. Observe os horários de todos os intervalos entre as mensagens de log do aplicativo geradas pelo SET NOTICE HIGH.

    Consulte a tabela a seguir.

  2. Use o seguinte cálculo para estimar o tempo de um cálculo real:

    Tempo total necessário para o cálculo simulado, dividido pelo primeiro intervalo de aviso de cálculo simulado, multiplicado pelo primeiro intervalo de tempo de cálculo real.

    Tabela 34-1 Intervalos de Amostra entre Mensagens de Log

    Número do Aviso de Cálculo Intervalo de Tempo de Cálculo Simulado (em segundos) Intervalo de Cálculo de Dimensão Esparsa (em segundos)

    1

    7

    45

    2

    5

     

    3

    6

     

    4

    3

     

    5

    4

     

    6

    2

     

    7

    6

     

    8

    4

     

    9

    3

     

    10

    3

     

    Tempo total de cálculo

    43

     

    Neste exemplo, 43 / 7 * 45 = 276,4 segundos, de modo que o cálculo real deve levar 276,4 segundos.

Fatores que afetam a precisão estimada

A precisão das estimativas com base em um cálculo simulado de um cubo de armazenamento em bloco do Essbase pode ser afetada por fatores como densidade de bloco e estrutura de outline.

O cálculo simulado deve retornar um tempo preciso para cerca de 5%, se os principais fatores que causam variações não estiverem presentes.

Quando esses fatores estão presentes, essa técnica de estimativa prevê mais de perto o tempo de cálculo quando o Essbase atinge de 30% a 40% dos cálculos simulados (30% a 40% das mensagens geradas pelo SET NOTICE HIGH).

Variações Devido a uma Cadeia de Influências

Usar SET MSG ONLY como uma técnica de estimativa de tempo de cálculo deve ser validado em intervalos CALCNOTICE posteriores. Os resultados desta técnica de estimativa variam devido à seguinte cadeia de influências:

  1. Os blocos diferem na densidade do bloco através do processo de consolidação real, portanto

  2. A taxa na qual o Essbase grava blocos no disco é diferente, portanto

  3. A taxa na qual os blocos são processados no cache difere, portanto

  4. Os resultados reais podem diferir do tempo de cálculo previsto.

Variações Devido à Estrutura de Tópicos

Outro fator que pode fazer os resultados reais divergirem significativamente do previsto é a estrutura do esboço. Os cálculos com base nos intervalos CALCNOTICE assumem um tempo de processamento equilibrado em toda a estrutura. Os fatores que podem distorcer esse equilíbrio incluem as seguintes situações:

  • O modelo contém uma ou duas dimensões esparsas que são grandes em relação às outras dimensões esparsas.

  • Dimensões maiores têm configurações de membro que resultam em vários roll-ups compartilhados.

Alterando a Estrutura de Tópicos com Base nos Resultados

Depois de estimar e analisar um cálculo simulado de um modelo do cubo de armazenamento em bloco do Essbase, você poderá alterar o outline para melhorar o desempenho.

De cima para baixo na estrutura, ordene dimensões esparsas para criar o menor percentual de aumentos nos blocos superiores:

  • Blocos de nível 0 após a carga completa do modelo: 100.000

  • Blocos de nível superior após consolidar apenas a dimensão esparsa 1: 1.000.000

  • Blocos de nível superior após consolidar apenas a dimensão esparsa 2: 3.000.000

  • Blocos de nível superior após consolidar apenas a dimensão esparsa 3: 10.000.000

  • Blocos de nível superior após consolidar apenas a dimensão esparsa 4: 300.000

  • Blocos de nível superior após consolidar apenas dimensão esparsa 5: 5,700,000

Por exemplo:

  • #4 (membros = 10.000, 4 níveis)

  • #1 (membros = 500, 2 níveis)

  • Nº 2 (membros = 100, 4 níveis)

  • #5 (membros = 10.000, 4 níveis)

  • #3 (membros = 20, plano)

Use o cálculo simulado para gerar a contagem de blocos superiores. Esses números podem ser precisos apesar dos tamanhos reais de dimensão, conforme observado ao lado dos itens acima.

Atenção:

A maior contagem de membros nem sempre é um bom preditor.

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.