Comparativa de consultas

27/01/2009 - 09:50 por José Antonio Muñoz | Informe spam
Hola al grupo,

¿Me podría decir que tipo de consulta es más eficiente y los pros y contras
de cada una de ellas? (A mi entender ambas consultas hacen lo mismo)

Tipo A:

SELECT
Campo1,
Campo2,
(SELECT Campo3 FROM Tabla2 WHERE Tabla1.Cod=Tabla2.Codigo) As Campo3,
Campo4
FROM Tabla1
ORDER BY Codigo

Tipo B:

SELECT
Campo1,
Campo2,
Tabla2.Campo3,
Campo4
FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.Cod=Tabla2.Codigo
ORDER BY Codigo

NOTA: Siempre habrá una equivalencia de códigos entre tabla1 y tabla2 y por
supuesto no se repetirán los códigos de tabla2 para cada código de tabla1.

Saludos,
José Antonio Muñoz
 

Leer las respuestas

#1 Carlos Sacristan
27/01/2009 - 10:04 | Informe spam
La primera consulta obligas al motor a realizar una consulta a Tabla2 por
cada uno de los registros de Tabla1, por lo que es menos eficiente que la
segunda, la cual permite al motor combinar dos conjuntos de datos.

Además, si dices que siempre habrá una equivalencia entre códigos de ambas
tablas, en vez de un LEFT JOIN yo usaría INNER JOIN

En cualquier caso, lo que te sacará de dudas es el plan de ejecución de
ambas consultas


Un saludo
-
www.navento.com
Servicios de Localización GPS


"José Antonio Muñoz" wrote:

Hola al grupo,

¿Me podría decir que tipo de consulta es más eficiente y los pros y contras
de cada una de ellas? (A mi entender ambas consultas hacen lo mismo)

Tipo A:

SELECT
Campo1,
Campo2,
(SELECT Campo3 FROM Tabla2 WHERE Tabla1.Cod=Tabla2.Codigo) As Campo3,
Campo4
FROM Tabla1
ORDER BY Codigo

Tipo B:

SELECT
Campo1,
Campo2,
Tabla2.Campo3,
Campo4
FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.Cod=Tabla2.Codigo
ORDER BY Codigo

NOTA: Siempre habrá una equivalencia de códigos entre tabla1 y tabla2 y por
supuesto no se repetirán los códigos de tabla2 para cada código de tabla1.

Saludos,
José Antonio Muñoz


Preguntas similares