Alteración temporal de la selección (factores de filtro) que el Optimizador de DB2 evalúa para los predicados

Utilice la característica Alterar temporalmente la selectividad para sustituir los factores de filtro que el optimizador de DB2 evalúa para predicados en sentencias SQL que se ejecutan en la nueva modalidad de función o posterior de DB2 for z/OS, versión 11.

Antes de empezar

Acerca de esta tarea

El factor de filtro de un predicado es un número entre 0 y 1 que estima la proporción de filas de una tabla para las que el predicado es cierto. Por ejemplo, supongamos que la DB2 podrá determinar qué columna C1 de la tabla T sólo contiene cinco valores diferenciados: A, D, Q, W y X. En ausencia de otra información, la DB2 estima que una quinta parte de las filas tienen el valor D en la columna C1. En este caso, el predicado C1='D' tendrá el factor de filtro 0.2 para la tabla T.

El optimizador de DB2 no siempre es capaz de determinar factores de filtro precisos de un predicado o un conjunto de predicados que se encuentran en una sentencia SQL, incluso en los casos en que las estadísticas para las tablas referenciadas están actualizadas. El resultado es que el optimizador genera planes de acceso inferiores a los que serían óptimo.

Por ejemplo, el predicado WHERE T1.C1 > ? no permite al optimizador calcular el factor de filtro exacto durante las fases de PREPARE o BIND; incluso si las estadísticas del histograma se han recopilado en C1, el optimizador no sabe qué valores son posibles.

Con la característica Alterar temporalmente la selectividad, puede obtener recomendaciones para sustituir los valores que el optimizador calcula para los factores de filtro con los valores que son más precisos. Puede incluso establecer valores de factores de filtro usted mismo.

Un conjunto de factores de filtro de una sentencia SQL constituyen un perfil de selectividad. Puede utilizar la característica Alterar temporalmente la selectividad para validar los perfiles de selectividad y desplegarlos si no tienen errores.

Restricción: Aunque DB2 for z/OS permite perfiles de selectividad para contener más de un conjunto de factores de filtro, la característica Alterar temporalmente la selectividad crea sólo un conjunto por perfil de selectividad.

Después de sustituir los factores de filtro, ya sea aceptando las recomendaciones o estableciéndolas usted mismo, puede comprobar el conjunto de factores de filtro para descubrir posibles errores. A continuación, puede revisar el nuevo plan de acceso para la sentencia SQL actual, e incluso compararlo con el plan de acceso original, sin antes desplegar el nuevo perfil de selectividad. También puede ejecutar el Asesor de índices en la sentencia; el asesor utilizará el nuevo plan de acceso. Puede comparar las recomendaciones del asesor con las recomendaciones que tienen su base en el plan de acceso original.

Si desea modificar los factores de filtro más, puede hacerlo, volver a validarlos, volver a probarlos y, a continuación, desplegarlos.

Procedimiento

  1. Una vez haya implementado las recomendaciones del Asesor de estadísticas, vuelva a la página Ejecutar herramientas y asesores de consulta única de la sección Invocar en el asistente de flujo de trabajo. Puede volver pulsando el separador Invocar en el lado izquierdo del asistente del flujo de trabajo. Si la página Ejecutar asesores de consulta única y herramientas no está abierta una vez haya pulsado el separados, pulse Ejecutar asesores de consulta única y herramientas en el lado izquierdo del asistente de flujos de trabajo para abrir la página.
  2. Seleccione Alterar temporalmente la selectiviad en la parte izquierda del asistente de flujo de trabajo.
  3. Ver la sentencia SQL con formato y calcular o cambiar manualmente los factores de filtro que están marcados como candidatos para alterar temporalmente.

    La sentencia SQL aparece en un formato que muestra su estructura claramente. Si la característica Alterar temporalmente la selectividad ha detectado algún predicado que el optimizador de DB2 puede estimar incorrectamente para los factores de filtro, aparecerá una Y junto a las partes del predicado para las que hay factores de filtro.

    En la columna Factor de filtro propuesto aparecen los factores de filtro que la característica Alterar temporalmente la selectividad recomienda. Si desea especificar su propio factor de filtro, pulse en la fila factor para el factor de filtro y especifique un valor de 0 a 1.

    Importante: Antes de establecer los factores de filtro usted mismo, asegúrese de que ha leído sobre factores de filtro en la documentación para su versión de DB2 for z/OS.
    Después de alterar temporalmente los factores de filtro, ya sea permitiendo que la característicaAlterar temporalmente la selectividad elija factores de filtro o estableciéndolos usted mismo, compruebe el nuevo perfil de selectividad. Si no hay errores o avisos, puede realizar una o más de las acciones siguientes para decidir si se debe desplegar el perfil de selectividad o no:
    • Revise un gráfico de plan de acceso para el nuevo plan de acceso.
    • Revise el nuevo plan de acceso en el Access Explorador Plan.
    • Compare el último gráfico de plan de acceso para la sentencia con un gráfico de plan de acceso que utiliza los nuevos factores de filtro.
    • Ejecute el Asesor de índices, que provoca que el perfil de selectividad se despliegue de forma virtual. El asesor realiza las recomendaciones que se basan en el perfil de la selectividad. Puede averiguar si el perfil provoca que el Asesor de índices modifique las recomendaciones que se han dado anteriormente para la sentencia.

    Si decide que el perfil de selectividad mejora el plan de acceso suficiente para cumplir los objetivos de rendimiento, puede utilizar la característica Alterar temporalmente la selectividad para desplegar el perfil de selectividad.


Comentarios