IN(....)

02/08/2004 - 20:10 por Ruben Dario | Informe spam
Que tal amigos.!!

Quisiera saber si al ejecutar una consulta donde el WHERE
depende de valores de otra tabla disminuye el rendimiento
del Server.

Ej.
Select Id_Libro from Libros
WHERE Id_Libro IN(Select Id_Libro_P from Libros WHERE
Tipo=1)

Saludos

Preguntas similare

Leer las respuestas

#1 Maxi
02/08/2004 - 20:24 | Informe spam
poco!! siempre es recomendable usar Joins, pero realmente yo nunca vi una
gran perdida de performance por usar IN

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Ruben Dario" escribió en el mensaje
news:98fb01c478bb$fd118da0$
Que tal amigos.!!

Quisiera saber si al ejecutar una consulta donde el WHERE
depende de valores de otra tabla disminuye el rendimiento
del Server.

Ej.
Select Id_Libro from Libros
WHERE Id_Libro IN(Select Id_Libro_P from Libros WHERE
Tipo=1)

Saludos





Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.732 / Virus Database: 486 - Release Date: 29/07/2004
Respuesta Responder a este mensaje
#2 Diego Uribe
02/08/2004 - 21:43 | Informe spam
Yo tuve una experiencia distinta por extraña que parezca
al utilizar un "IN" mejoró el rendimiento notablemente,

El problema es que no tengo bases ni fundamentos para confirmar este
comportamiento.. pudo deberse al tipo de consulta

Saludos

Diego





"Maxi" escribió en el mensaje
news:
poco!! siempre es recomendable usar Joins, pero realmente yo nunca vi una
gran perdida de performance por usar IN

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Ruben Dario" escribió en el mensaje
news:98fb01c478bb$fd118da0$
> Que tal amigos.!!
>
> Quisiera saber si al ejecutar una consulta donde el WHERE
> depende de valores de otra tabla disminuye el rendimiento
> del Server.
>
> Ej.
> Select Id_Libro from Libros
> WHERE Id_Libro IN(Select Id_Libro_P from Libros WHERE
> Tipo=1)
>
> Saludos



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.732 / Virus Database: 486 - Release Date: 29/07/2004


Respuesta Responder a este mensaje
#3 Javier Loria
03/08/2004 - 02:38 | Informe spam
Hola Ruben:
En teoria un WHERE/IN debe ser mas lento, pero con SQL2000 el
opmitimizador de consultas te ayuda y te "aplana" la consulta internamente.
Solamente en consultas complejas logras confundirlo y entonces el
rendimiento del WHERE IN deteriora mucho la consulta.
Un problema del WHERE/IN es que no permite manejar multiples columnas o
condiciones que no sean de igualdad. El JOIN es mucho mas funcional.


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Ruben Dario escribio:
Que tal amigos.!!

Quisiera saber si al ejecutar una consulta donde el WHERE
depende de valores de otra tabla disminuye el rendimiento
del Server.

Ej.
Select Id_Libro from Libros
WHERE Id_Libro IN(Select Id_Libro_P from Libros WHERE
Tipo=1)

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