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.
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.
Para abrir el editor visual para crear, validar y desplegar
perfiles 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.