Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3- View Merging: se reescribe la consulta como join en tablas base en lugar de usar vistas
6- Query Evaluation Plan (QEP): Se evalúan las diferentes opciones de acceso y se genera el
plan.
Los pasos del 1 al 6 a veces se agrupan y se denominan 'parsing', fase de 'parseo' o simplemente
análisis.
Para crear un plan de ejecución, basta con anteponer a la sentencia SQL correspondiente el
comando explain plan for:
Se puede ejecutar el comando explain plan for en cualquier ambiente de desarrollo o con
SQL*Plus. Sin embargo, no muestra el plan de ejecución sino que lo guarda en la tabla
denominada PLAN_TABLE. Desde la versión 10g, esta tabla está disponible automáticamente
como una tabla temporal global. Con las versiones anteriores, se tenía que crear en cada
esquema, a medida que se necesitaba. Solicita a tu administrador de base de datos que la cree
o ejecute el comando create table desde la instalación de la base de datos Oracle:
$ORACLE_HOME/rdbms/admin/utlxplan.sql
Introducido a partir de la versión 9iR2, el paquete DBMS_XPLAN permite formatear y mostrar los
planes de ejecución desde la tabla PLAN_TABLE. El siguiente ejemplo muestra cómo se muestra
el último plan de ejecución que se ejecutó en la sesión actual de la base de datos:
Una vez más, si la sentencia no funciona desde el primer intento, se debe pedir asistencia a su
DBA.
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
Uniones (Joins)
Por lo general, las operaciones de unión procesan sólo dos tablas al mismo tiempo. En el caso
de que una sentencia tenga más uniones, éstas se ejecutan de forma secuencial: primero dos
tablas y después el resultado intermedio con la siguiente tabla. Por lo tanto, en el contexto de
las uniones, el término “tabla” puede también significar “resultado intermedio”.
HASH JOIN
Carga los registros candidatos desde un lado de la unión dentro de la tabla hash, y
después compara cada fila con el otro lado de la unión.
MERGE JOIN
Merge join combina dos listas ordenadas como si fuera la cremallera de un pantalón.
Ambos lados de la unión deben ser preordenados.
Ordenar y agrupar
SORT ORDER BY
Ordena el resultado de acuerdo a la cláusula order by. Esta operación necesita una
cantidad importante de memoria para materializar el resultado intermedio (sin
pipeline).
SORT GROUP BY
Ordena el resultado configurado sobre las columnas del group by y combina el resultado
ordenado en la segunda etapa. Esta operación necesita una cantidad importante de
memoria para materializar el conjunto del resultado intermedio (sin pipeline).
HASH GROUP BY
Agrupa el resultado usando la tabla hash. Esta operación necesita una cantidad de
memoria importante para materializar el conjunto del resultado intermedio (sin
pipeline). La salida no está ordenada de manera determinista.
Sentencias Top-N
La eficiencia de las sentencias top-N depende del modo de ejecución de las operaciones
subyacentes. Son muy ineficientes cuando se abortan las operaciones sin pipeline como SORT
ORDER BY.
COUNT STOPKEY
Aborta las operaciones subyacentes cuando se alcanza el número deseado de filas.
EXERCICI
Crea la taula següent on tinguis les taules depart i emple.
SELECT E.APELLIDO,E.OFICIO,E.SALARIO,D.DNOMBRE
FROM EMPLE E, DEPART D
WHERE D.DEPT_NO=E.DEPT_NO AND NOT EXISTS (SELECT * FROM PROJ P WHERE E.EMP_NO
= P.EMP_NO);
Visualitza el resultat a la pestanya del explain plan i intenta explicar que está passant.