Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Optimizacion Consultas3
Optimizacion Consultas3
Observemos un ejemplo:
EXPLAIN PLAN
Cmo leer el resultado del EXPLAIN PLAN?
Supongamos la consulta:
query_plan
--------------------------------------------
TABLE ACCES COMPANIA BY ROWID
AND-EQUAL
INDEX RANGE SCAN COMPANIA$CIUDAD
INDEX RANGE SCAN COMPANIA$DEPARTAMENTO
EXPLAIN PLAN
Cmo leer el resultado del EXPLAIN PLAN?
query_plan
-------------------------------------------------
SELECT STATEMENT
SORT ORDER BY
NESTED LOOPS
TABLE ACCESS FULL CLIENTE
TABLE ACCESS BY ROWID EMPLEADOS
INDEX RANGE SCAN EMPLEADO_NOMBRES_IDX
EXPLAIN PLAN
Cmo leer el resultado del EXPLAIN PLAN?
SELECT STATEMENT
4 SORT ORDER BY
3 NESTED LOOPS
1 TABLE ACCESS FULL CLIENTE
2 TABLE ACCESS BY ROWID EMPLEADOS
INDEX RANGE SCAN EMPLEADO_NOMBRES_IDX
query_plan
---------------------------------------------
PROJECTION
SORT UNIQUE
UNION
MERGE JOIN
SORT JOIN
TABLE ACCESS FULL COMPANIA
SORT JOIN
TABLE ACCESS FULL VENTAS
TABLE ACCESS BY ROWID COMPETIDOR
INDEX UNIQUE SCAN COMPETIDOR_PK
EXPLAIN PLAN
Otros Aspectos acerca del EXPLAIN PLAN
DBMS_SESSION.SET_SQL_TRACE(TRUE);
SQL TRACE Y TKPROF
Pasos a Seguir, a la hora de utilizar SQL TRACE y TKPROF
2. Localizar los archivos de rastreo de inters
SELECT value
FROM v$parameter
WHERE name = 'user_dump_dest';
SQL TRACE Y TKPROF
Pasos a Seguir, a la hora de utilizar SQL TRACE y TKPROF
2. Localizar los archivos de rastreo de inters (cont.)
Para encontrar un archivo de rastreo especfico, es necesario conocer
cual fue el PID que Oracle asign a este proceso. Esto se puede
averiguar mediante la siguiente consulta:
SELECT spid FROM sys.v_$process
WHERE addr = ( SELECT paddr FROM sys.v_$session
WHERE audsid = userenv('sessionid')
);
Sin embargo, si se quiere personalizar el directorio donde se
guardarn los archivos de rastreo, se puede hacer lo siguiente:
SET AUTOTRACE ON
Supongamos la consulta:
SELECT * FROM emp;
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
8 consistent gets
0 physical reads
0 redo size
656 bytes sent via SQL*Net to client
496 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
4 rows processed