de Martin LE TARNEC.

Obtener un plan de ejecución


Ver un plan de ejecución dentro de la base de datos Oracle involucra dos etapas:

  1. explain plan for guarda el plan de ejecución en PLAN_TABLE.

  2. Formatear y mostrar el plan de ejecución.

Crear y guardar un plan de ejecución

Para crear un plan de ejecución, basta con anteponer a la sentencia SQL correspondiente el comando explain plan for:

EXPLAIN PLAN FOR select * from dual

Se puede ejecutar el comando explain plan for en cualquier ambiente de desarrollo o con SQL*Plus. Sin embargo, no muestra el plan de ejecución sino que lo guarda en la tabla denominada PLAN_TABLE. Desde la versión 10g, esta tabla está disponible automáticamente como una tabla temporal global. Con las versiones anteriores, se tenía que crear en cada esquema, a medida que se necesitaba. Solicita a tu administrador de base de datos que la cree o ejecute el comando create table desde la instalación de la base de datos Oracle:

$ORACLE_HOME/rdbms/admin/utlxplan.sql

Se puede ejecutar esta sentencia en cualquier esquema donde se desea crear la tabla PLAN_TABLE.

Aviso

El comando explain plan for no crea necesariamente el mismo plan de ejecución que cuando se ejecute la sentencia.

Mostrar los planes de ejecución

Introducido a partir de la versión 9iR2, el paquete DBMS_XPLAN permite formatear y mostrar los planes de ejecución desde la tabla PLAN_TABLE. El siguiente ejemplo muestra cómo se muestra el último plan de ejecución que se ejecutó en la sesión actual de la base de datos:

select * from table(dbms_xplan.display)

Una vez más, si la sentencia no funciona desde el primer intento, se debe pedir asistencia a su DBA.

La sentencia mostrará el plan de ejecución como se ha visto en el libro:

--------------------------------------------------------------
| Id | Operation         | Name | Rows | Bytes | Cost (%CPU)|.
--------------------------------------------------------------
|  0 | SELECT STATEMENT  |      |    1 |     2 |     2   (0)|.
|  1 |  TABLE ACCESS FULL| DUAL |    1 |     2 |     2   (0)|.
--------------------------------------------------------------

Algunas de las columnas expuestas en el plan de ejecución se han eliminados en el libro para lograr un mejor ajuste en la página.

Acerca del autor

Foto de Markus Winand

Markus Winand enseña SQL eficiente, en casa y online. Mejora el tiempo de desarrollo utilizando SQL moderno y optimiza el tiempo de ejecución con indexación inteligente. Su libro Rendimiento SQL explicado se ha convertido en lectura obligada sobre el tema.

Adquiere tu libro en Amazon

Portada de “Rendimiento SQL explicado”: Ardilla corriendo en la hierba

La esencia del tuning de SQL en 200 páginas

Compra en Amazon
(solo en papel)

Libro y PDF también disponible en la tienda de Markus.

Contratar a Markus

La manera más rápida y fácil de beneficiarse de su extenso conocimiento y experiencia.
Aprende más »

“Use The Index, Luke” de Markus Winand se halla bajo licencia Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Aspectos legales | Contacto | SIN GARANTÍA | Marcas | Privacy | CC-BY-NC-ND 3.0 licencia