Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Twitter Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Facebook Pulse para guardar enlace y compartir esta web. Búscanos en Google+ Pulse para guardar enlace y compartir esta web Pulse para generar codigo QR del enlace y compartir esta web

EXPLAIN PLAN (plan de ejecución)

Esta sentencia guarda el plan de ejecución para una sentencia SQL en una tabla.

Cada vez que ejecutamos una sentencia una de las cosas que hace oracle es crear un plan de ejecución de la sentencia.

Un plan de ejecución define la forma en que oracle busca o graba los datos. Decide, por ejemplo, si va a usar o no los indices en una sentencia SELECT.

Esta es la sintaxis general:

   EXPLAIN PLAN [SET STATEMENT_ID = 'text'] FOR sentencia;
Podemos usar nuestra propia tabla de explain:

   EXPLAIN PLAN [SET STATEMENT_ID = 'text'] INTO [esquema.]tabla@dblink FOR sentencia;

Si no definimos nuestra propia tabla se usa la tabla PLAN_TABLE.

Ejemplo:

DELETE PLAN_TABLE;
EXPLAIN PLAN FOR SELECT * FROM T_PEDIDOS WHERE CODPEDIDO = 5;
Para ver el resultado:

SELECT 
  SUBSTR (LPAD(' ', LEVEL-1) || OPERATION || ' (' || OPTIONS || ')',1,30 ) "OPERACION", 
  OBJECT_NAME "OBJETO"
FROM PLAN_TABLE 
START WITH ID = 0 
CONNECT BY PRIOR ID=PARENT_ID;
Sobre todo hay que evitar búsquedas del tipo FULL TABLE SCAN.