Optimización del cubo para el modo híbrido

Para utilizar el modo híbrido de forma más eficaz:

  • Evite utilizar el cálculo en dos pasadas en el modo híbrido. Utilice el orden de resolución en su lugar.

  • Convierta los miembros almacenados que no sean de nivel 0 en cálculo dinámico siempre que sea posible.

  • Si la conversión en miembros de cálculo dinámico afecta al orden de resolución de fórmulas dependientes, puede que sea necesario que ajuste el orden de dimensiones del esquema para alinear el orden de resolución con la configuración anterior de orden de cálculo de lotes y de cálculo en dos pasadas.

    El orden de resolución por defecto para los cubos del modo híbrido es similar al orden de cálculo de los cubos de almacenamiento de bloques, con algunas mejoras. Si prefiere utilizar un orden de resolución que no sea por defecto, puede definir uno personalizado para las dimensiones y los miembros.

  • Una fórmula calculada de manera dinámica procesada en el orden de solución incorrecto puede provocar que una consulta ejecute demasiadas fórmulas, lo que hace que el rendimiento empeore. Cuando sea posible, una fórmula ligera con cálculo dinámico debe tener un orden de resolución superior que las dimensiones ligeras agregadas mediante jerarquía.

    En algunas aplicaciones, esto no es posible ya que se necesita un orden de resolución distinto para obtener el resultado correcto de la fórmula. Por ejemplo, en una aplicación con unidades y precios se debe ejecutar un valor de ventas antes que las agregaciones ligeras para obtener el valor de ventas correcto en los niveles superiores.

  • Puede que tenga que ajustar las configuraciones densas y ligeras de las dimensiones (solamente aplicable a la utilización del motor de almacenamiento de bloques, en los casos en que no pueda utilizarse el motor híbrido).

  • Si es posible, reduzca el tamaño de los bloques.

Los administradores de Essbase pueden usar las siguientes herramientas para supervisar y optimizar el rendimiento de las consultas en el modo híbrido:

  • Para limitar la cantidad de memoria que puede consumir una sola consulta, utilice la opción de configuración MAXFORMULACACHESIZE.

  • Si el cubo tiene fórmulas de miembro complejas con operadores de varias dimensiones y varias sentencias IF/ELSE, los problemas de rendimiento pueden estar relacionados con la ejecución de fórmulas. Si se sospecha que esto puede ocurrir, puede activar el procesamiento de consultas ascendente para el cálculo de fórmulas. Esto optimiza los tiempos de consulta mediante la identificación de las intersecciones necesarias para el cálculo, lo cual hace que el tiempo de consulta sea proporcional al tamaño de los datos de entrada.

    Para realizar estas optimizaciones de consulta para la versión 21C, utilice el valor de configuración QUERYBOTTOMUP, así como la función de cálculo @QUERYBOTTOMUP. En el caso de la versión 19C, utilice el valor de configuración IGNORECONSTANTS con la sintaxis BOTTOMUP, así como la función de cálculo @NONEMPTYTUPLE.

  • Utilice el rastreo de consultas para supervisar y depurar el rendimiento de las consultas. Hay disponibles varias opciones de configuración a nivel de aplicación, en función de cuál sea su caso de uso. Utilice QUERYTRACE para realizar una depuración a corto plazo de una sola columna que piense que pueda ser problemática. Utilice TRACE_REPORT para la recopilación de estadísticas sobre consultas que se ejecuten simultáneamente (idóneo para la depuración en un entorno de desarrollo). Utilice LONGQUERYTIMETHRESHOLD en entornos de producción para imprimir estadísticas en el archivo log de aplicaciones sobre cualquier consulta que se ejecute durante más tiempo del previsto.