FAQ - Preguntas frecuentes sobre Oracle - ¿Como puedo averiguar el plan de ejecución que utiliza una co

3 - ¿Como puedo averiguar el plan de ejecución que utiliza una co

[editar]
Monografía creado por José Manuel. Extraido de: http://www.lawebdejm.com
30 de Noviembre de 1999
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 <instruccion SQL>;


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).
[editar]

Sé el primero en opinar


Monografías relacionados con 'FAQ - Preguntas frecuentes sobre Oracle'

Lista de FAQs que he ido recopilando durante los tres años que trabajé con Oracle,... Más »
Las Pequeñas y Medianas empresas (PYME’s) necesitan incorporar tecnología a sus estrategias de negocio para... Más »

Autor y licencia de 'FAQ - Preguntas frecuentes sobre Oracle'


Monografía de José Manuel. Extraido de: http://www.lawebdejm.com CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.