Creación y despliegue de perfiles de optimización para sentencias SQL que se ejecutan en DB2 para Linux, UNIX y Windows

Puede utilizar un perfil de optimización para intervenir directamente en el modo de crear un plan de acceso para una sentencia SQL. En el perfil, puede especificar los índices que se van a utilizar, cómo acceder a las tablas de acceso a las que hace referencia la sentencia SQL y el método de unión que se va a utilizar, entre otros valores.

Antes de empezar

Acerca de esta tarea

Un perfil de optimización puede contener directrices globales, que se aplican a todas las sentencias de lenguaje de manipulación de datos (DML) ejecutadas mientras el perfil está en vigor, y puede contener directrices específicas que se aplican a sentencias DML individuales en un paquete.

Procedimiento

Para abrir el editor visual para crear, validar y desplegar perfiles de optimización:

  1. Capture la sentencia SQL que desea ajustar. Consulte Ubicaciones desde las que puede capturar un sentencia SQL para el ajuste de consultas únicas.
  2. Seleccione una de las sentencias capturadas y pulse el botón Invocar asesores y herramientas. Se abre la página Ejecutar asesores de consulta única y herramientas de análisis en la sección Invocar.
  3. En el lado izquierdo del asistente de flujos de trabajo, bajo Consulta única, expanda Avanzado y seleccione Crear perfil de optimización.

Qué hacer a continuación

Utilice las secciones de la página Personalizar plan de acceso con un perfil de optimización para especificar directrices para un perfil de optimización.

Esta página contiene tres secciones.
Diagrama de unión y diagrama de secuencia de unión
Esta sección aparece en la esquina superior izquierda de la página.

Los diagramas de unión muestran como nodos las tablas a las que hace referencia una sentencia. Las esquinas entre los nodos muestran las relaciones entre las tablas. El tipo de predicado que representa una esquina aparece junto con la esquina. Los predicados pueden ser predicados locales o predicados de unión. Puede realizar una doble pulsación en un nodo para cambiar la forma en que el plan de acceso accede a la tabla correspondiente.

Los diagramas de secuencia de unión muestra la secuencia de unión en el plan de acceso para una sentencia SQL.

Cada nodo que representa una tabla muestra la siguiente información:
  • El nombre de la tabla en la sentencia reescrita por el optimizador de DB2
  • El nombre completo de la tabla
  • La cardinalidad de la tabla
  • El tipo de acceso especificado para la tabla
Diagrama de secuencias de unión editable
Esta sección aparece en la esquina superior derecha de la página.

Puede editar la secuencia de unión cambiando el tipo de uniones o añadiendo o suprimiendo uniones. También puede añadir y eliminar nodos que representan tablas a las que hace referencia la sentencia SQL.

Directrices en el perfil de optimización
Esta sección aparece en la parte inferior de la página.
Puede utilizar la sección Directrices del perfil de optimización para completar estas tareas:
Establecer directrices para todas las sentencias que utilizan el perfil de optimización
  • Habilitar o inhabilitar el uso de tablas de consulta materializada. Si habilita su uso, puede especificar qué MQT tendrá en cuenta para utilizarlas.
  • Habilitar o inhabilitar la consideración de la optimización del grupo de partición computacional. Si habilita esta consideración, puede especificar el grupo de particiones que el optimizador de DB2 tendrá en cuenta.
  • Sustituir el valor de la opción de enlace REOPT por otro valor.
  • Sustituir el valor de la opción de enlace DEGREE por otro valor.
  • Sustituir el valor de la opción de enlace QUERYOPT por otro valor.
  • Habilitar o inhabilitar la colección de estadísticas en tiempo real. Si habilita esta colección, puede especificar el tiempo máximo posible para permitir que el optimizador de DB2 pueda recoger estas estadísticas. Si el optimizador estima que necesitará más tiempo para realizar esta tarea, no lo hará.
  • Habilitar obligatoriedad de MQT.
Establecer directrices para la sentencia SQL actual
  • Sustituir el valor de la opción de enlace REOPT por otro valor.
  • Sustituir el valor de la opción de enlace DEGREE por otro valor.
  • Sustituir el valor de la opción de enlace QUERYOPT por otro valor.
  • Habilitar o inhabilitar la colección de estadísticas en tiempo real. Si habilita esta colección, puede especificar el tiempo máximo posible para permitir que el optimizador de DB2 pueda recoger estas estadísticas. Si el optimizador estima que necesitará más tiempo para realizar esta tarea, no lo hará.
  • Habilitar obligatoriedad de MQT.
Establezca las directrices que afectan a las transformaciones que se consideran durante la fase de optimización de la reescritura de consulta, que transforma la sentencia original en una sentencia optimizada equivalente semánticamente.
  • Habilitar o inhabilitar la transformación de reescritura predicate-to-join de IN-LIST.
  • Habilitar o inhabilitar la transformación de reescritura predicate-to-anti-join de NOT-EXISTS.
  • Habilitar o inhabilitar la transformación de reescritura predicate-to-anti-join de NOT-IN.
  • Habilitar o inhabilitar la transformación de reescritura subquery-to-join.
Personalizar el acceso a una tabla
  • Establezca una directriz de optimización del plan.
  • Realice una doble pulsación en la tabla del diagrama de uniones y cambie la forma de acceso a la tabla.

Puede comprobar el perfil de optimización para ver si hay problemas, para poderlos corregir antes de desplegar el perfil.

Finalmente, puede desplegar el perfil de optimización. Desplegar significa insertar el perfil de optimización como una fila en la tabla SYSTOOLS.OPT_PROFILE.

Utilice la opción de enlace OPTPROFILE para especificar que se debe utilizar un perfil de optimización a nivel de paquete o utilice el registro especial CURRENT OPTIMIZATION PROFILE para especificar que se debe utilizar un perfil de optimización a nivel de sentencia.

Este registro especial contiene el nombre calificado del perfil de optimización que van a utilizar las sentencias preparadas dinámicamente para la optimización. Para aplicaciones CLI, puede utilizar la opción de configuración del cliente CURRENTOPTIMIZATIONPROFILE para establecer este registro especial para cada conexión.


Comentarios