Reducir el impacto de cálculo dinámico en el tiempo de recuperación

El aumento del tiempo de recuperación cuando se calcula dinámicamente un miembro de una dimensión densa no es significativo a menos que el miembro contenga una fórmula compleja. El aumento del tiempo de recuperación puede ser significativo cuando se etiquetan miembros de dimensiones dispersas como Cálculo dinámico.

Puede analizar y gestionar el efecto de los miembros de Cálculo dinámico en una base de datos de Essbase prestando atención al factor de recuperación, el tamaño del buffer de recuperación y las cachés de calculadora.

Note:

Para obtener una lista de las funciones que tienen el efecto más significativo en la recuperación de consultas, consulte Funciones de juego de miembros y rendimiento.

Visualización de un factor de recuperación

Para ayudarle a estimar cualquier aumento en el tiempo de recuperación, Essbase calcula un factor de recuperación para un esquema de base de datos al guardar el esquema. Essbase calcula este factor de recuperación en función del bloque de datos calculado dinámicamente que sea el más costoso para el cálculo de Essbase. El factor de recuperación solo tiene en cuenta las agregaciones. No tiene en cuenta el impacto de recuperación de las fórmulas.

El factor de recuperación es el número de bloques de datos que Essbase debe recuperar del disco o de la base de datos para calcular el bloque más caro. Si la base de datos solo tiene miembros de Cálculo dinámico en dimensiones densas (no hay miembros de Cálculo dinámico en dimensiones dispersas), el factor de recuperación es 1.

Un esquema con un alto factor de recuperación (por ejemplo, superior a 2000) puede causar largos retrasos cuando los usuarios recuperan datos. Sin embargo, el impacto real en el tiempo de recuperación también depende de cuántos valores de datos calculados dinámicamente recupera un usuario. El factor de recuperación es solo un indicador. En algunas aplicaciones, el uso de miembros de Cálculo dinámico puede reducir el tiempo de recuperación porque el tamaño de la base de datos y el tamaño del índice se reducen.

Essbase muestra el valor del factor de recuperación en el log de la aplicación.

Un mensaje similar a este ejemplo indica un factor de recuperación:


Essbase needs to retrieve [1] Essbase kernel blocks in order
to calculate the top dynamically-calculated block.

Este mensaje indica que Essbase necesita recuperar un bloque para calcular el bloque de datos calculado dinámicamente más caro.

Aumentar Tamaño de Buffer de Recuperación

Cuando los usuarios consultan desde Smart View, MDX o Redactor de informes, Essbase utiliza el buffer de recuperación para optimizar la consulta. El aumento del tamaño del buffer de recuperación puede mejorar el rendimiento de las consultas, ya que Essbase puede procesar secciones más grandes de datos simultáneamente.

Por defecto, el tamaño del buffer de recuperación es de 20 KB. Sin embargo, puede acelerar el tiempo de recuperación si define un tamaño de buffer de recuperación superior a 20 KB.

Para aumentar el tamaño del buffer de recuperación, puede utilizar la sentencia de modificación de base de datos MaxL. Por ejemplo:

alter database Sample.Basic set retrieve_buffer_size 20kb;

También puede cambiar el tamaño del buffer en la configuración de personalización de la base de datos mediante la interfaz web de Essbase.

Utilizar cachés de calculadora dinámica

De forma predeterminada, cuando Essbase calcula un miembro de Cálculo dinámico en una dimensión densa (por ejemplo, para una consulta), escribe todos los bloques necesarios para el cálculo en un área de la memoria denominada caché de calculadora dinámica. Cuando Essbase escribe estos bloques en la caché de calculadora dinámica, los expande para incluir todos los miembros de Cálculo dinámico en las dimensiones densas.

Si una consulta incluye un miembro de cálculo de dos transferencias en una dimensión densa, la consulta necesita una caché de calculadora dinámica para cada bloque recuperado.

El uso de la caché de calculadora dinámica de Essbase permite un control centralizado del uso de memoria para los cálculos dinámicos. La gestión de bloques de datos en la caché de calculadora dinámica también reduce el requisito de espacio de memoria general y puede mejorar el rendimiento al reducir el número de llamadas al sistema operativo para realizar asignaciones de memoria.

Note:

La caché de calculadora dinámica y la caché de calculadora utilizan diferentes enfoques para optimizar el rendimiento del cálculo.

Consulte también: Tamaño de las cachés de la calculadora dinámica y Tamaño de la caché de la calculadora.

Revisar uso de caché de calculadora dinámica

Essbase escribe dos mensajes en el log de la aplicación para cada recuperación de datos. En el siguiente ejemplo, el primer mensaje describe el tiempo total necesario para la recuperación:


Regular Extractor Elapsed Time : [0.531] seconds
Regular Extractor Big Blocks Allocs -- Dyn.Calc.Cache : [30] non-Dyn.Calc.Cache : [0]

Si se utiliza una caché de calculadora dinámica, un segundo mensaje muestra el número de bloques calculados dentro de la caché de calculadora de datos (Dyn.Calc.Cache: [n]) y el número de bloques calculados en memoria fuera de la caché de calculadora dinámica (no Din.Calc.Cache: [n]).

Para determinar si la caché de calculadora dinámica se está utilizando de forma eficaz, revise ambos mensajes y considere los valores de configuración. Por ejemplo, si el mensaje indica que los bloques se calcularon fuera y en una caché de calculadora dinámica, puede aumentar la configuración de DYNCALCCACHEMAXSIZE.

Si el tamaño máximo especificado es todo lo que puede permitirse para todas las cachés de calculadora dinámica en el servidor y si el uso de memoria fuera de la caché de calculadora para completar recuperaciones calculadas dinámicamente provoca retrasos inaceptables (por ejemplo, debido a la actividad de intercambio o paginación), defina DYNCALCCACHEWAITFORBLK en TRUE.

Puede utilizar la sentencia MaxL de la base de datos de consultas con la gramática estadísticas de rendimiento para ver un resumen de la actividad de la caché de calculadora dinámica.