Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2011, 10:50
ram_cdfe
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Cómo optimizar este query de SQL?

Al ejecutar el siguiente query, toma mucho tiempo, el costo es alto y a veces cuelga el motor de SQL. ¿Hay alguna manera de optimizarlo??

Cualquier sugerencia será tomada en cuenta, gracias.


declare @serial varchar(20),
@fecha_inicio datetime,
@fecha_fin datetime

select @serial = '%PSR0617%'
select @fecha_inicio = '2010-10-01'
select @fecha_fin = '2010-10-31'


print '--RESULTADOS PARA ' + @serial + char(10)
select * from tabla1 a (nolock), tabla2 b(nolock), tabla3 c (nolock), tabla4 d (nolock)
where a.campo1 = b.campo1 and a.fecha = b.fecha and a.campo2 = d.campo2 and b.campo3 = c.campo3
and a.fecha in (select fecha from tabla4 (nolock) where fecha between @fecha_inicio and @fecha_fin and valor like @serial)
and b.detalle in (select detalle from tabla4 (nolock) where fecha between @fecha_inicio and @fecha_fin and cat_valor like @serial)

go

select * from tabla5 a, tabla4 b (nolock)
where
a.campo1 = b.campo2
and b.fecha in (select fecha from tabla4 (nolock) where fecha between @fecha_inicio and @fecha_fin and valor like @serial)
and b.detalle in (select fecha from tabla4 (nolock) where fecha between @fecha_inicio and @fecha_fin and valor like @serial)