| Inicio | Tu Cuenta | Manuales | Foros | Tutoriales | Los TOP | Empleos| Artículos | Comentarios |   

Manual Oracle
 1: Monitoreo de Bloqueos 
 2: Manejo de Clusters en Oracle 
 3: Analiszando las Consultas tipo Hash 
 4: Introducción a ORACLE Developer - Castellano 
 5: Creación de un Formulario en Developer Forms - Castellano 
 6: Administracion de Base de Datos Oracle 
 7: Tutorial de Oracle9i Reports 
 8: Manual de Developer Forms 
 9: Manual de Oracle9i Reports 
 10: External tables en Oracle 9i 


Mas de Oracle


Noticias Oracle


Error Ora-


Script Oracle Español
· Scripts para DBA
· SQL ANSI en Oracle 10g
· Pivoting INsert en Oracle 10g
· Sentencias de inserción en varias tablas - Oracle 10g
· Sentencia Insert condicionada - Oracle 10 g

[ Más en la Sección de Noticias ]



¿Como puedo averiguar el plan de ejecución que utiliza una consulta?
Enviado el Viernes, 21 julio a las 09:00:00 por csr

Concepto y Practica

¿Como puedo averiguar el plan de ejecución que utiliza una consulta?


Autor y Licencia de este articulo: José Manuel - http://www.lawebdejm.com

Esto se puede hacer con distintos métodos:

1.- Activando la traza de SQL a nivel de sesión.
2.- Utilizando la instrucción EXPLAIN PLAN.
3.- Utilizando el comando SET AUTOTRACE de SQL*Plus.


1.- Activar la traza de SQL a nivel de sessión:

Consultar el FAQ sobre trazas a nivel de sesión.


2.-Utilizar la instruccion EXPLAIN PLAN:

La instrucción EXPLAIN PLAN nos permite llenar la tabla PLAN_TABLE con datos sobre el plan de ejecución. La tabla PLAN_TABLE debe crearse, y para ello podemos ir al fichero UTLXPLAN.SQL del directorio $ORACLE_HOME/rdbms/admin. Una vez creada la tabla, ejecutaremos la instrucción:

    EXPLAIN PLAN
[SET STATEMENT ID = 'identificador']
INTO esquema.PLAN_TABLE
FOR ;

Con esto llenaremos la tabla PLAN_TABLE con un número de registros indeterminado. Cada registro, tendrá en la columna STATEMENT_ID el valor 'identificador'. Para ver el plan de ejecución, podremos mostrar las distintas filas formateadas con la siguiente consulta:

    SELECT LPAD(’ ’, 2 * (level-1)) || operation operation,
options,
object_name,
FROM output
START WITH id = 0 AND
statement_id = 'identificador'
CONNECT BY PRIOR id = parent_id AND
statement_id = 'identificador';


3.- Utilizar el comando AUTOTRACE (a partir de Oracle 7.3)

El programa SQL*Plus nos permite mostrar el plan de ejecución de todas las instrucciones que vamos lanzando. Para ello basta con activar la auto-traza a través del comando:

    SET AUTOTRACE [ON,OFF] [EXPLAIN] [STATISTICS]

Si indicamos la opción EXPLAIN, nos mostrará el plan de ejecución, y si indicamos la opción STATISTICS, nos presentará una tabla de estardísticas tales como número de ordenaciones, lecturas a disco, bloques recuperados, etc. Para poder ejecutar este comando, es necesario tener el permisos sobre V$SESSION. La mejor manera de conseguir esto es concediendo el rol completo PLUSTRACE, y estar creada la tabla PLAN_TABLE dentro del esquema actual (ver el punto 2 para consultar cómo crear esta tabla).


 
Enlaces Relacionados
· Más Acerca de Concepto y Practica
· Noticias de csr


Noticia más leída sobre Concepto y Practica:
Mandatos de Sql Plus



Votos del Artículo
Puntuación Promedio: 1
votos: 1


Por favor tómate un segundo y vota por este artículo:

Malo
Regular
Bueno
Muy Bueno
Excelente




Opciones

Versión Imprimible  Versión Imprimible

Enviar a un Amigo  Enviar a un Amigo


Manual Oracle
Oracle Manual y tutorial, Pl/Sql, Discoverer, Forms, Sql y Plsql - Orape



Adaptado para nuke 6.0 por DragónNB