Codificación eficiente de consultas con funciones de totales

Si la consulta implica funciones de totales, puede tomar medidas para aumentar las posibilidades de que se evalúen al recuperar los datos, en lugar de después. Si hace esto puede mejorar el rendimiento de la consulta.

Acerca de esta tarea

Iniciar la información de la interfaz de programación específica del programa. En general, una función de totales funciona mejor cuando se evalúa durante el acceso a los datos y luego, mejor cuando se evalúa durante la clasificación de Db2. El momento menos preferible es que la función de totales se evalúe después de recuperar los datos. Puede utilizar EXPLAIN para determinar cuándo Db2 evalúa las funciones de totales.

Las consultas que implican funciones MAX o MIN pueden aprovechar el acceso de una captación.

Procedimiento

Para asegurarse de que se evalúa una función de totales cuando Db2 recupere los datos:

Codifique la consulta de modo que cada función de totales que contenga satisfaga los criterios siguientes:
  • No se necesita ninguna clasificación para GROUP BY. Compruebe esto en la salida de EXPLAIN.
  • No existen predicados de la etapa 2 (residuales). Compruebe esto en la aplicación.
  • No existen funciones de conjuntos diferenciados como, por ejemplo, COUNT(DISTINCT C1).
  • Si la consulta es una unión, todas las funciones del conjunto deben estar en la última tabla unida. Compruebe esto consultando la salida de EXPLAIN.
  • Todas las funciones de totales deben estar en columnas individuales sin expresiones aritméticas.
  • La función de totales no es una de las siguientes funciones de totales:
    • STDDEV
    • STDDEV_SAMP
    • VAR
    • VAR_SAMP
Finalizar la información de la interfaz de programación específica del programa.