Velocidad en consulta SQL

03/03/2005 - 12:07 por Mario | Informe spam
Hola, tengo una duda de velocidad de ejecución.
Alguien me puede decir qué rinde mejor (escalado a SELECTs más complejas,
claro):

OPCIÓN 1:
SELECT a.CodigoTabla1,
b.DescripcionTabla2
FROM Tabla1 a INNER JOIN Tabla2 b ON a.CodigoTabla2 = b.CodigoTabla2

OPCIÓN 2:
SELECT a.CodigoTabla1,
(SELECT DescripcionTabla2
FROM Tabla2
WHERE CodigoTabla2 = a.CodigoTabla2)
FROM Tabla1 a

Gracias!!!

Preguntas similare

Leer las respuestas

#1 Ivan Pascual
03/03/2005 - 12:52 | Informe spam
Apostaria por la opcion 1
De todas maneras desde el analizador de consultas puedes ver el plan de
trabajo de cada opcion.
Creo que es ejecutando la consulta presionando Ctrl + L
Ahi te dira el costo de la consulta.
Lo deberas hacer por separado. Primero una opcion y luego la otra.

Ivan Pascual
Respuesta Responder a este mensaje
#2 Carlos Sacristán
03/03/2005 - 13:26 | Informe spam
La primera es más óptima, porque estás trabajando con conjuntos de
registros, mientras que la otra le estás obligando al motor a buscar un dato
por cada uno de los registros encontrados. Compruébalo con el plan de
ejecución del analizador de consultas


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Mario" escribió en el mensaje
news:
Hola, tengo una duda de velocidad de ejecución.
Alguien me puede decir qué rinde mejor (escalado a SELECTs más complejas,
claro):

OPCIÓN 1:
SELECT a.CodigoTabla1,
b.DescripcionTabla2
FROM Tabla1 a INNER JOIN Tabla2 b ON a.CodigoTabla2 = b.CodigoTabla2

OPCIÓN 2:
SELECT a.CodigoTabla1,
(SELECT DescripcionTabla2
FROM Tabla2
WHERE CodigoTabla2 = a.CodigoTabla2)
FROM Tabla1 a

Gracias!!!
Respuesta Responder a este mensaje
#3 Eladio Rincón
03/03/2005 - 17:33 | Informe spam
Deberias mirar el plan de ejecucción como ha comentado Iván y Carlos;

sin embargo, no veo correcto comparar esas dos opciones porque:
en la primera consulta se hace el join y se encuentran resultados
coincidentes.
y, en la segunda consulta estás asumiento que sólo va a devolver una o
ninguna fila el subquery.

para consultas del tipo cabecera-detalle no sería válido

Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Mario" wrote in message
news:
Hola, tengo una duda de velocidad de ejecución.
Alguien me puede decir qué rinde mejor (escalado a SELECTs más complejas,
claro):

OPCIÓN 1:
SELECT a.CodigoTabla1,
b.DescripcionTabla2
FROM Tabla1 a INNER JOIN Tabla2 b ON a.CodigoTabla2 = b.CodigoTabla2

OPCIÓN 2:
SELECT a.CodigoTabla1,
(SELECT DescripcionTabla2
FROM Tabla2
WHERE CodigoTabla2 = a.CodigoTabla2)
FROM Tabla1 a

Gracias!!!
Respuesta Responder a este mensaje
#4 Mario
07/03/2005 - 12:11 | Informe spam
Gracias!!!


"Mario" wrote:

Hola, tengo una duda de velocidad de ejecución.
Alguien me puede decir qué rinde mejor (escalado a SELECTs más complejas,
claro):

OPCIÓN 1:
SELECT a.CodigoTabla1,
b.DescripcionTabla2
FROM Tabla1 a INNER JOIN Tabla2 b ON a.CodigoTabla2 = b.CodigoTabla2

OPCIÓN 2:
SELECT a.CodigoTabla1,
(SELECT DescripcionTabla2
FROM Tabla2
WHERE CodigoTabla2 = a.CodigoTabla2)
FROM Tabla1 a

Gracias!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida