acelerando consulta....

20/06/2006 - 19:30 por _ C l a u d i n h o _ | Informe spam
Tengo la mision de acelerar algunas consultas para que sean lo mas optimas posibles, considerando que el sitio es accesado por muchas personas persistentemente.

en algunas consultas donde tengo que entregar datos filtrando por varias tablas cambie la forma y deje solo una tabla y concatené IN en el where

me explico,

por ej tengo

select idProducto,NombreProducto from TBL_Producto,TBL_Atributos,TBL_Cotizaciones,(etc),
where
TBL_Producto.idProducto=TBL_Atributos.idProducto
and
TBL_Producto.idProducto=TBL_Cotizaciones.idProducto
and
TBLCotizacion.Estado=2
and.
TBL_Atributos.tipoatributo=1
and.
etc..etc..

lo cambie por..
select idProducto,NombreProducto from TBL_Producto
where
idproducto in (select idProducto from TBL_Atributos where tipoatributo=1)
and
idproducto in (select idProducto from TBL_Cotizaciones where Estado=2)


Esto es un ejemplo solamente para entender lo que hize... me redujo bastante el tiempo de respuesta, pero al parecer aumentó la cantidad de reads..

el comportamiento de esta consulta es = con mucha carga?? esta muy aberrante lo que estoy haciendo??

saludos
 

Leer las respuestas

#1 Maxi
20/06/2006 - 19:48 | Informe spam
Hola, yo no soy amante del in, porque no usas join?


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"_ C l a u d i n h o _" escribió en el
mensaje news:
Tengo la mision de acelerar algunas consultas para que sean lo mas optimas
posibles, considerando que el sitio es accesado por muchas personas
persistentemente.

en algunas consultas donde tengo que entregar datos filtrando por varias
tablas cambie la forma y deje solo una tabla y concatené IN en el where

me explico,

por ej tengo

select idProducto,NombreProducto from
TBL_Producto,TBL_Atributos,TBL_Cotizaciones,(etc),
where
TBL_Producto.idProducto=TBL_Atributos.idProducto
and
TBL_Producto.idProducto=TBL_Cotizaciones.idProducto
and
TBLCotizacion.Estado=2
and.
TBL_Atributos.tipoatributo=1
and.
etc..etc..

lo cambie por..
select idProducto,NombreProducto from TBL_Producto
where
idproducto in (select idProducto from TBL_Atributos where tipoatributo=1)
and
idproducto in (select idProducto from TBL_Cotizaciones where Estado=2)


Esto es un ejemplo solamente para entender lo que hize... me redujo bastante
el tiempo de respuesta, pero al parecer aumentó la cantidad de reads..

el comportamiento de esta consulta es = con mucha carga?? esta muy aberrante
lo que estoy haciendo??

saludos

Preguntas similares