¿Cuáles son las ventajas y desventajas de una combinación o una subconsulta?

...

Las consultas de la base de datos recuperan información específica de la base de datos.

Una subconsulta es una consulta dentro de otra consulta. Una subconsulta también puede contener otra subconsulta. Se dice que son subconsultas "anidadas". Una combinación es cuando se hace referencia a dos o más tablas en la cláusula "De" de la consulta. Los diferentes motores de base de datos pueden optimizar las subconsultas y las uniones de manera diferente. Por ejemplo, el optimizador de DB2 transformará una subconsulta en una combinación si se cumplen ciertos criterios. En algunos casos, una combinación produce un mejor rendimiento que una subconsulta.

Qué hace una subconsulta

Una subconsulta es una instrucción "SELECT" dentro de la cláusula "WHERE" o "HAVING" de una instrucción externa "INSERT", "UPDATE", "MERGE" o "DELETE". La subconsulta también se denomina "consulta interna" o "selección interna". La subconsulta puede tener una cláusula "FROM" con una o más tablas y, opcionalmente, puede tener una cláusula "WHERE", "GROUP BY" o "HAVING". Siempre está entre paréntesis.

Video del día

Ventajas y desventajas de las subconsultas

Las subconsultas son ventajosas porque estructuran la consulta para aislar cada parte de la declaración, realizar la misma operación que normalmente requeriría uniones y uniones complejas y que son más fáciles de leer. Las subconsultas incluso fueron la base para el nombre "Lenguaje de consulta estructurado" (SQL) debido a su estructura fácilmente legible. Una desventaja es que no puede modificar una tabla y seleccionar de la misma tabla dentro de una subconsulta en la misma instrucción SQL. Las subconsultas también pueden tardar más en ejecutarse que una combinación debido a cómo las procesa el optimizador de la base de datos.

Qué hace una unión

La mayoría de las subconsultas se pueden reescribir como combinaciones y la mayoría de las combinaciones se pueden reescribir como subconsultas. Una combinación define dos o más tablas por una columna relacionada. Las tablas generalmente se unen en claves primarias y externas. Por ejemplo, una tabla de empleados puede tener una clave principal de una columna de identificación de empleado, mientras que una tabla de parte de horas también tiene una columna de identificación de empleado que es una clave externa para la tabla de empleados. La combinación SQL se puede escribir como "DONDE employee.empid = timesheet.empid" o "FROM employee JOIN timesheet ON (employee.empid = timesheet.empid)".

Ventajas y desventajas de las uniones

La principal ventaja de una combinación es que se ejecuta más rápido. Es posible que el usuario final no perciba el aumento de rendimiento. Sin embargo, debido a que el motor de la base de datos nombra e indexa y optimiza las columnas específicamente, el tiempo de recuperación casi siempre será más rápido que el de una subconsulta. También hay uniones internas y externas, uniones a la izquierda y a la derecha, uniones completas y uniones cruzadas. Una desventaja de usar uniones es que no son tan fáciles de leer como las subconsultas. Otra desventaja es que puede resultar confuso en cuanto a qué combinación es el tipo apropiado de combinación a utilizar para producir el conjunto de resultados deseado correcto.