Reduza o Impacto do Cálculo Dinâmico no Tempo de Recuperação
O aumento no tempo de recuperação quando você calcula dinamicamente um membro de uma dimensão densa não é significativo, a menos que o membro contenha uma fórmula complexa. O aumento no tempo de recuperação pode ser significativo quando você marca membros de dimensões esparsas como Cálculo Dinâmico.
Observação:
Para obter uma lista de funções que têm o efeito mais significativo na recuperação de consultas, consulte Funções e Desempenho do Conjunto de Membros.
Exibir fator de recuperação
Para ajudar você a estimar qualquer aumento no tempo de recuperação, o Essbase calcula um fator de recuperação para um outline de banco de dados quando você salva o outline. O Essbase calcula esse fator de recuperação com base no bloco de dados calculado dinamicamente que é o mais caro para o Essbase calcular. O fator de recuperação leva em consideração apenas agregações. Ele não considera o impacto da recuperação de fórmulas.
O fator de recuperação é o número de blocos de dados que o Essbase deve recuperar do disco ou do banco de dados para calcular o bloco mais caro. Se o banco de dados tiver membros do Cálculo Dinâmico apenas em dimensões densas (nenhum membro do Cálculo Dinâmico em dimensões esparsas), o fator de recuperação será 1.
Um outline com um alto fator de recuperação (por exemplo, maior que 2000) pode causar longos atrasos quando os usuários recuperam dados. No entanto, o impacto real no tempo de recuperação também depende de quantos valores de dados calculados dinamicamente um usuário recupera. O fator de recuperação é apenas um indicador. Em alguns aplicativos, o uso de membros do Cálculo Dinâmico pode reduzir o tempo de recuperação porque o tamanho do banco de dados e o tamanho do índice são reduzidos.
O Essbase exibe o valor do fator de recuperação no log do aplicativo.
Uma mensagem semelhante a esta amostra indica um fator de recuperação:
Essbase needs to retrieve [1] Essbase kernel blocks in order
to calculate the top dynamically-calculated block.Esta mensagem informa que o Essbase precisa recuperar um bloco para calcular o bloco de dados mais caro calculado dinamicamente.
Aumentar tamanho do buffer de recuperação
Quando os usuários consultam no Smart View, MDX ou Report Writer, o Essbase usa o buffer de recuperação para otimizar a consulta. Aumentar o tamanho do buffer de recuperação pode melhorar o desempenho da consulta, pois o Essbase pode processar seções maiores de dados simultaneamente.
Por padrão, o tamanho do buffer de recuperação é de 20 KB. No entanto, você pode acelerar o tempo de recuperação se definir o tamanho do buffer de recuperação maior que 20 KB.
Para aumentar o tamanho do buffer de recuperação, você pode usar a instrução MaxL alter database. Por exemplo:
alter database Sample.Basic set retrieve_buffer_size 20kb;Ou você pode alterar o tamanho do buffer nas configurações de personalização do banco de dados, usando a interface Web do Essbase.
Usar Caches da Calculadora Dinâmica
Por padrão, quando o Essbase calcula um membro do Cálculo Dinâmico em uma dimensão densa (por exemplo, para uma consulta), ele grava todos os blocos necessários para o cálculo em uma área na memória chamada cache da calculadora dinâmica. Quando o Essbase grava esses blocos no cache da calculadora dinâmica, ele os expande para incluir todos os membros do Cálculo Dinâmico nas dimensões densas.
Se uma consulta incluir um membro de cálculo de duas passagens em uma dimensão densa, a consulta precisará de um cache de calculadora dinâmica para cada bloco recuperado.
O uso do cache da calculadora dinâmica do Essbase permite o controle centralizado do uso da memória para cálculos dinâmicos. O gerenciamento de blocos de dados no cache da calculadora dinâmica também reduz o requisito geral de espaço de memória e pode melhorar o desempenho, reduzindo o número de chamadas para o sistema operacional para fazer alocações de memória.
Observação:
O cache dinâmico da calculadora e o cache da calculadora usam diferentes abordagens para otimizar o desempenho do cálculo.
Consulte também: Tamanho dos Caches da Calculadora Dinâmica e Tamanho do Cache da Calculadora.
Revisar Uso do Cache da Calculadora Dinâmica
O Essbase grava duas mensagens no log do aplicativo para cada recuperação de dados. No exemplo a seguir, a primeira mensagem descreve o tempo total necessário para a recuperação:
Regular Extractor Elapsed Time : [0.531] seconds
Regular Extractor Big Blocks Allocs -- Dyn.Calc.Cache : [30] non-Dyn.Calc.Cache : [0]Se um cache de calculadora dinâmica for usado, uma segunda mensagem exibirá o número de blocos calculados no cache da calculadora de dados (Dyn.Calc.Cache: [n]) e o número de blocos calculados na memória fora do cache da calculadora dinâmica (non-Dyn.Calc.Cache: [n]).
Para determinar se o cache da calculadora dinâmica está sendo usado de forma eficaz, revise as duas mensagens e considere suas definições de configuração. Por exemplo, se a mensagem indicar que os blocos foram calculados fora e em um cache de calculadora dinâmica, você poderá aumentar a configuração DYNCALCCACHEMAXSIZE.
Se o tamanho máximo especificado for tudo o que você puder pagar por todos os caches dinâmicos da calculadora no servidor e se o uso de memória fora do cache da calculadora para concluir recuperações calculadas dinamicamente resultar em atrasos inaceitáveis (por exemplo, por causa da atividade de troca ou paginação), defina DYNCALCCACHEWAITFORBLK como TRUE.
Você pode usar a instrução MaxL do banco de dados de consulta com a gramática estatísticas de desempenho para exibir um resumo da atividade do cache da calculadora dinâmica.