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)