|
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).
|