Bloques de consulta

Una sentencia SQL puede estar formada por varias subconsultas, que se representan en el diagrama de plan de acceso mediante bloques de consultas.

Una subconsulta puede ser SELECT, INSERT, UPDATE o DELETE. Una subconsulta puede contener otras subconsultas en la cláusula FROM, la cláusula WHERE o una subselección de UNION o UNION ALL. Una subconsulta en otra subconsulta se denomina una subconsulta hijo. Una subconsulta que contiene otra subconsulta se denomina una subconsulta padre. Esta relación padre-hijo se puede representar mediante una jerarquía de árbol.

Si una subconsulta hace referencia a al menos una columna de su subconsulta padre o cualquier subconsulta padre que esté más arriba en la jerarquía de árbol, la subconsulta es una subconsulta correlacionada; de lo contrario, es una subconsulta no correlacionada. Una subconsulta no correlacionada puede ejecutarse al mismo tiempo que la subconsulta padre superior que tampoco está correlacionada. La subconsulta padre superior se denomina "subconsulta padre que se ejecuta al abrir" en términos de su relación con la subconsulta no correlacionada. La ejecución de una subconsulta correlacionada está vinculada con la ejecución de su subconsulta padre. Este tipo de relación entre las ejecuciones relativas de padres e hijos puede representarse mediante jerarquías de árbol independientes en el gráfico de plan de acceso.

Subconsulta no correlacionada
Para una subconsulta no correlacionada, el nodo de bloque de consulta se conecta a la derecha del nodo de bloque de consulta de la subconsulta padre superior que tampoco está correlacionada.
Subconsulta correlacionada
Para una subconsulta correlacionada, el nodo de bloque de consulta se conecta a la parte de su subconsulta padre donde se ejecuta la subconsulta correlacionada.

Comentarios