Rapidez en una consulta

13/08/2008 - 17:41 por MhBeyle | Informe spam
¿Cuál es la forma más rápida de ejecutar esta consulta?

Tabla 1 --
-COD1
-COD2
-COD3
-COD4
-COD5
-DESC

Tabla 2 --
-COD
-Nombre
-Apellidos

La consulta enlaza todos los códigos [COD] de [Tabla 1] con el campo
[COD] de [Tabla 2]. Se muestran todas las filas de [Tabla 1],
coincidan o no con [Tabla 2] y se muestran los [Apellidos] y [Nombre]
de [Tabla 2], si es que hay coincidencia. Cada código es una cosa
distinta, aunque todos los nombres residan en una sola tabla ([Tabla
2]).

1 COD1+Apellidos COD2+Apellidos COD3+Apellidos ... DESC
2 COD1+Apellidos COD2+Apellidos COD3+Apellidos ... DESC
3 COD1+Apellidos COD2+Apellidos COD3+Apellidos ... DESC
... ...

¿Es más rápido enlazar cada código con un alias de [Tabla 2] completo
o mejor hacer un alias de SELECT para cada enlace o alguna sugerencia?

SELECT
COD1.Apellidos AS COD1,
COD2.Apellidos AS COD2,
...
FROM
(SELECT Apellidos, COD FROM [Tabla 2]) COD2
RIGHT OUTER JOIN
[Tabla 1] ON COD2.COD = [Tabla 1].COD1
LEFT OUTER JOIN
(SELECT Apellidos, COD FROM [Tabla 2]) COD1
LEFT OUTER JOIN
...

MhBeyle ___
 

Leer las respuestas

#1 Maxi Accotto
06/09/2008 - 16:22 | Informe spam
Hola, si entendi bien, no le veo sentido al segundo query, el primero es mas
simple mas rapido y mas legible.
A la larga es un simple join entre tablas


"MhBeyle" escribió en el mensaje de
noticias:
¿Cuál es la forma más rápida de ejecutar esta consulta?

Tabla 1 --
-COD1
-COD2
-COD3
-COD4
-COD5
-DESC

Tabla 2 --
-COD
-Nombre
-Apellidos

La consulta enlaza todos los códigos [COD] de [Tabla 1] con el campo
[COD] de [Tabla 2]. Se muestran todas las filas de [Tabla 1],
coincidan o no con [Tabla 2] y se muestran los [Apellidos] y [Nombre]
de [Tabla 2], si es que hay coincidencia. Cada código es una cosa
distinta, aunque todos los nombres residan en una sola tabla ([Tabla
2]).

1 COD1+Apellidos COD2+Apellidos COD3+Apellidos ... DESC
2 COD1+Apellidos COD2+Apellidos COD3+Apellidos ... DESC
3 COD1+Apellidos COD2+Apellidos COD3+Apellidos ... DESC
... ...

¿Es más rápido enlazar cada código con un alias de [Tabla 2] completo
o mejor hacer un alias de SELECT para cada enlace o alguna sugerencia?

SELECT
COD1.Apellidos AS COD1,
COD2.Apellidos AS COD2,
...
FROM
(SELECT Apellidos, COD FROM [Tabla 2]) COD2
RIGHT OUTER JOIN
[Tabla 1] ON COD2.COD = [Tabla 1].COD1
LEFT OUTER JOIN
(SELECT Apellidos, COD FROM [Tabla 2]) COD1
LEFT OUTER JOIN
...

MhBeyle ___

Preguntas similares