sql db2 query-optimization explain

sql - ¿Cómo uso DB2 Explain?



query-optimization (4)

¿Cómo uso la función Explain de DB2? - tanto para ejecutarlo, como para utilizarlo para optimizar consultas. ¿Hay una mejor herramienta disponible para DB2?

He creado consultas antes, pero la única forma en que he tenido que decir cuánto tiempo tardarían en ejecutarlas y cronometrarlas, lo cual no es lo ideal.

Edit: La respuesta para mí resultó ser "No puedes. No tienes y no puedes obtener el acceso". ¿No amas la burocracia?


IBM ofrece Data Studio como una herramienta gratuita basada en eclipse, que entre otras ventajas incluye una GUI para ejecutar explicaciones visuales, así como proporcionar ayuda de ajuste a través de un asesor de consultas. Recomiendo encarecidamente el uso de Data Studio.

Es relativamente fácil configurar los recursos correctos (las tablas de explicación que se deben crear y el enlace que se debe realizar) haciendo clic derecho en una fuente de datos conectada y seleccionando

analizar y sintonizar> configurar para sintonizar> configuración guiada.

Para generar el gráfico explicativo , simplemente resalte su consulta, haga clic con el botón derecho y elija "Abrir explicación visual":

Para utilizar el asesor de consultas , seleccione "iniciar ajuste" en su lugar. Lo llevará a través de un proceso que generará la explicación, así como también recomendará cualquier oportunidad de ajuste que pueda determinar.


Lo que estás buscando está cubierto por dos utilidades de DB2:

  1. La utilidad de explicación , que muestra el plan de acceso del optimizador y el costo estimado para una consulta específica (según las estadísticas actuales de RUNSTATS)
  2. El asesor de diseño , que recomienda cambios estructurales para mejorar el rendimiento de una o más consultas.

Ambas utilidades requieren la creación de tables especializadas en la base de datos.

Tiendo a usar la utilidad de explicación más que al asesor, especialmente si soy capaz de cambiar el SQL para que la consulta influya en un mejor plan de acceso. Utilizo la utilidad de línea de comandos db2expln para explicar las diferentes versiones de una consulta que estoy ajustando y comparando sus costos. Lo más importante es que sus estadísticas de tabla e índice están actualizadas cuando se ejecuta la explicación o el asesor de diseño.


Siempre he encontrado que ejecutar la utilidad de explicación desde la línea de comandos con el modo ''-g'' activado me ha ayudado a identificar problemas.

No puedo recordar las opciones ahora, e IIRC, ¡db2expln es un poco quisquilloso con el pedido {es decir, no puede poner el nombre de usuario después de la contraseña!}, Pero funciona bien.


db2expln - muestra de base de datos -t -g -f "consulta sql"

Esto funcionó bien para mi.