Monitorar e Rastrear Cálculos

Monitore e rastreie cálculos do Essbase para obter informações sobre o processamento de fórmulas de membros. CALCTRACE e SET TRACE ajudam você a rastrear cálculos executados no Smart View ou em cálculos armazenados. Para registrar estatísticas de desempenho para teste, você pode usar SET MSG e SET NOTICE.

Para ativar o rastreamento de cálculo, use a propriedade de configuração CALCTRACE e, em seguida, use o Smart View para iniciar o rastreamento contextual ou use o comando SET TRACE em um script de cálculo para selecionar quais interseções de dados rastrear. Para obter detalhes, consulte Cálculos de Rastreamento.

Para exibir informações no log do aplicativo sobre como o Essbase está calculando o cubo, você pode usar SET MSG e SET NOTICE em um script de cálculo. Consulte Comandos SET para Teste de Cálculo e Estatísticas.

Rastrear Cálculos

Use o rastreamento de cálculo do Essbase para obter informações sobre processamento de fórmula de membro, ajudando a depurar e refinar scripts de cálculo de armazenamento em blocos. Ative CALCTRACE para rastreamento de cálculo contextual do Smart View ou use o comando SET TRACE para selecionar as interseções de dados a serem rastreadas.

O rastreamento de cálculos permite acessar informações registradas sobre um cálculo, após o script de cálculo ser executado com sucesso em um cubo.

O rastreamento de um cálculo não altera nada no comportamento do cálculo. Se um cálculo for iniciado no Smart View, e o servidor conectado tiver um rastreamento de cálculo ativado por um administrador, o Smart View exibirá uma caixa de diálogo pop-up contendo detalhes, após a execução do cálculo. As informações de rastreamento de cálculo podem ser coladas da caixa de diálogo pop-up em um editor de texto. Ou você pode encontrar as mesmas informações em calc_trace.txt, localizadas no diretório de arquivos de banco de dados no Essbase.

As informações de rastreamento de cálculo podem ajudá-lo a depurar a execução do script de cálculo, caso os resultados do cálculo não sejam o que você esperava.

O rastreamento de cálculo não é suportado em aplicativos com gerenciamento de cenários habilitado.

Para ativar o rastreamento de cálculo, o administrador deve primeiro ativar o parâmetro de configuração de aplicativo CALCTRACE. Após o rastreamento de cálculos ser ativado em seu aplicativo, há duas maneiras de aproveitar esse recurso:

  • No Smart View, você pode usar o rastreamento contextual para um único valor de célula.
    1. No Smart View, conecte uma planilha de consulta ao aplicativo no qual você ativou o rastreamento de cálculos.
    2. Destaque uma célula de dados cujo valor calculado você gostaria de rastrear.
    3. No painel Dados da guia Essbase, clique no botão Calcular e selecione um script de cálculo a ser executado. Você verá o ponto de vista da sua célula de dados destacada nos prompts de runtime do rastreamento de membro.
    4. Clique em Iniciar para executar o script de cálculo.

      O escopo completo do cálculo, conforme contido no script, será calculado, mas somente o contexto da célula de dados destacada será rastreado durante o cálculo.

    5. Ao final do script de cálculo, examine a caixa de diálogo Resultado do Cálculo, que mostra os resultados antes e após o cálculo para sua célula de dados destacada.

      Se a célula de dados destacada não tiver sido modificada durante o cálculo, você verá uma mensagem indicando que a célula foi modificada.

  • Em scripts de cálculo, você pode usar o comando SET TRACE para selecionar interseções dos dados a serem rastreadas. SET TRACE permite rastrear múltiplas células de dados. Além disso, você pode rastrear seções de scripts de cálculo usando uma combinação de SET TRACE mbrList (para ativar o rastreamento de cálculo em uma lista de membro) e SET TRACE OFF (para desativar esse rastreamento até que seja encontrado um novo SET TRACE no script. Para usar o comando SET TRACE, você deve executar o script de cálculo fora do Smart View, usando o Cube Designer, o comando calc da CLI, um job Executar Cálculo na interface Web do Essbase ou a instrução MaxL (executar cálculo).

O script de cálculo a seguir é executado no Sample Basic. O script inclui um comando SET TRACE, solicitando informações detalhadas a serem registradas para a intersecção de dados (célula) que representa vendas orçadas de janeiro, no mercado da Califórnia, para o produto SKU número 100-10.

SET TRACEID "id042"
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

Observação:

O comando SET TRACEID também é recomendado para evitar que o arquivo de rastreamento de cálculo seja substituído.

O Sample Basic possui duas dimensões esparsas: Produto e Mercado. A fórmula do membro está em Vendas, um membro de Medidas, que é uma dimensão densa. A lista de membros da instrução FIX contém apenas um membro disperso, Califórnia, que pertence à dimensão Mercado.

O número de blocos existentes no escopo FIX determina o número de vezes que a célula rastreada é calculada. Neste exemplo, o cálculo faz um ciclo por todas as combinações de membros dispersos existentes de Califórnia. Cada uma dessas combinações representa um bloco.

Após a conclusão do cálculo, as seguintes informações de rastreamento serão registradas e exibidas em calc_trace_id042.txt:

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 1)
Previous value: 840.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00

Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

[...calc iterations 4-7 are omitted from example...]

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values: 
	[400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

O registro de rastreamento de cálculo fornece os seguintes insights sobre como o cálculo funcionou, na célula que foi rastreada:

  • A célula rastreada foi calculada várias vezes e o valor da célula foi substituído todas as vezes pelo novo valor (a contagem de atualização de célula reportada é interrompida em 8).

  • O valor da célula, antes do cálculo, era 840,00.

  • Para cada ocorrência de cálculo, são mostrados valores dependentes e novos valores. Os valores dependentes são provenientes da fórmula do membro na instrução FIX.

  • O valor final da célula rastreada, após a conclusão de todos os cálculos, é 9, mas representa o valor do produto "400-20"->California dividido por 10.

  • As linhas 91-93 do script de cálculo, contendo uma fórmula de membro em Vendas, são responsáveis pelos valores atualizados.

Para cada um dos blocos que passaram pelo ciclo, Vendas é calculado usando a fórmula:

"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10

A fórmula contém um membro esparso no lado esquerdo, o que pode fazer com que o bloco de cálculo real seja diferente do bloco FIX inicial. Por exemplo, quando o cálculo realiza o ciclo em "California"->"100-20", os cálculos são, de fato, realizados em "California"->"100-10".

As entradas de log do rastreamento Block from FIX scope e Actual block used in calculation só são impressas se houver uma discrepância entre os blocos da instrução FIX e o bloco representado na fórmula do membro. Essas entradas de log podem fornecer indicações sobre por que há cálculos duplicados, ajudando você a depurar seus scripts de cálculo.

Comandos SET para Teste de Cálculo e Estatísticas

Você pode usar comandos SET em scripts de cálculo de armazenamento em bloco do Essbase para coletar informações de cálculo, configurações e estatísticas que podem ser úteis para testar e monitorar o desempenho do cálculo. Os comandos são SET MSG SUMMARY, SET MSG DETAIL e SET NOTICE.

SET MSG SUMMARY e SET MSG DETAIL

Você pode usar os comandos de cálculo SUMMARY e SET MSG DETAIL do SET MSG em um script de cálculo para fazer o seguinte:

  • Exibir configurações de cálculo, por exemplo, se as mensagens de aviso de conclusão estão ativadas

  • Fornecer estatísticas sobre o número de blocos de dados criados, lidos e gravados

  • Fornecer estatísticas sobre o número de células de dados calculadas

SET MSG DETAIL também fornece uma mensagem de informação toda vez que o Essbase calcula um bloco de dados. SET MSG DETAIL é útil para revisar a ordem de cálculo dos blocos de dados e para testar os recálculos inteligentes.

Atenção:

Como SET MSG DETAIL causa uma sobrecarga de processamento alta, use-a somente durante os cálculos de teste.

SET MSG SUMMARY causa uma sobrecarga de processamento de aproximadamente 1% a 5%, dependendo do tamanho do cubo, e é, portanto, apropriado para todos os cálculos.

DEFINIR AVISO

Você pode usar o comando de cálculo SET NOTICE em um script de cálculo para exibir avisos de conclusão de cálculo que informam qual porcentagem do cubo foi calculada. Você pode usar o comando SET MSG SUMMARY com o comando SET NOTICE para mostrar o progresso do cálculo entre os avisos de conclusão. Os avisos de conclusão não reduzem significativamente o desempenho do cálculo, exceto quando usados com um cubo muito pequeno.