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

El paquete DBMS_XPLAN permite formatear y mostrar los planes de ejecución. 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_cursor(null, null,
                                  'LAST ALLSTATS +COST'))

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:

---------------------------------------------------------------
| Operation         | Name | E-Rows | Cost | A-Rows | A-Time |.
---------------------------------------------------------------
| SELECT STATEMENT  |      |        |    2 |      1 |  00.01 |.
|  TABLE ACCESS FULL| DUAL |      1 |    2 |      1 |  00.01 |.
---------------------------------------------------------------

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.

Previous pageNext page

You can’t learn everything in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up. Have a look at modern-⁠sql.com as well.

Acerca del autor

Foto de Markus Winand

Markus Winand es defensor del resurgimiento del SQL. Su misión es la de presentar a los desarrolladores la evolución de SQL en el siglo XXI. Es posible contratar a Markus según disponibilidad o como orador o consultor en winand.at.

Adquiere tu libro

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

La esencia del tuning de SQL en 200 páginas

Compra ahora
(libro de bolsillo y/o PDF)

Contratar a Markus

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

Entrar en contacto con Markus

Suscríbete a listas de correoRSS FeedMarkus Winand en LinkedInMarkus Winand en XINGMarkus Winand en TwitterMarkus Winand en Bluesky
Copyright 2017-2025 Martin LE TARNEC, Markus Winand. All righs reserved.
Aspectos legales | Contacto | SIN GARANTÍA | Marcas | Privacidad y RGPD