Practica 2 - Apartado a) y d)

De FdIwiki ABD
Saltar a: navegación, buscar

APARTADO 2

a.- Para todas las consultas:

¿Qué hace cada operación de “bajo nivel” ejecutada?

  • FULL TABLE SCAN: Lee todas las filas de la tabla y filtra las que no cumplen los criterios de selección. Se aplica si se accede a porciones grandes de la tabla y no hay índice.
  • TABLE ACCESS BY ROWID: Se usa para acceder a cada fila. ROWID indica el DATAFILE, en qué bloque está, y posición dentro de él.
  • INDEX UNIQUE SCAN: accede a una sola fila por índice único.
  • INDEX RANGE SCAN: accede a varias entradas de índice. Se aplica cuando hay condiciones
  • de no igualdad o el índice no es único.
  • FULL INDEX SCAN: lee solo bloques hoja del índice, pero no lee filas de la tabla. Se aplica en consultas donde todos sus atributos están en el índice. Puede eliminar una operación de clasificación por separado porque los datos en el índice se ordenan por una clave de índice.
  • HASH JOIN: se utiliza para unir tablas muy grandes: Usa la tabla menor para crear una tabla hash en memoria con la clave de join. Después, analiza la tabla más grande, explorando la tabla hash para encontrar las filas unidas.
  • HASH UNIQUE: Se hace uso de esquema de hash y garantizar datos únicos.
  • NESTED LOOPS JOIN: (puede que aparezcan dos seguidos) son dos bucles anidados para tablas pequeñas si puede acceder por Índice a la 2a. Para cada fila de la 1a tabla accede por índice a las filas de la 2a. El bucle externo es para cada fila de la tabla externa, mientras que el interno es para cada fila de la tabla interna.
  • MERGE JOIN: Combinación que mezcla dos filas cuando la condición de unión no es igualdad. Es más eficiente que Nested Loops para tablas grandes.
  • MERGE SEMI JOIN: Semi combinación que mezcla dos filas.
  • SORT UNIQUE: se produce si un usuario especifica una cláusula DISTINCT o si una operación
  • requiere valores únicos para la siguiente etapa.
  • UNION ALL: El operador devuelve todas las filas. No elimina las filas duplicadas seleccionadas.

d.- Ejecutar en sql Developer la consulta 6. Con iconos “Rastreo Automático (F6)” y con “Explicación del plan (F10)” y compara los resultados.

En Rastreo Automático (F6) nos aparecen más detalles sobre la consulta que en Explicación del plan (F10). El coste de ambas funciones es el mismo (4, 4, 3), pero las funciones no son iguales. Por ejemplo, en Rastreo Automático aparece la columna “LAST_CR_BUFFER_GETS” (Número de buffers recuperados de forma consistente). Lo que significa: “This information tells you how much data your SQL caused Oracle to move around for each type of work.” Que en nuestro caso es 7. El Rastreo Automático ofrece detalles como los siguientes:

  • Access Predicates: PARENT_ID = PRIOR NULL
  • Filter Predicates: ID = 1 (es una condición)

A su vez, la Explicación del plan tiene una columna para las Opciones, por ejemplo en SORT tenemos la opción “Order by”, en CONNECT BY tenemos la opción “No filtering with start-with” y por último, en TABLE ACCESS tenemos la opción “Full”.


--David Caballero (discusión) 18:34 22 abr 2015 (CEST)