Consulta muy lenta y con mensajes "conecction time out"

20/04/2005 - 16:18 por J Lara | Informe spam
Tengo una consulta que es muy lenta para extraer
los datos,incluso me envia entre los registros de
salida algunos errores como "SQL Server connection
time out "

Esta consulta se antoja sencilla no es nada complicado
como para que el server batalle, en esta consulta
se involucran 4 tablas, deseo los datos de la Tabla1
siempre y cuando cumplan un criterio en la T2 y no
exista el C1.ID en ninguna de las otras 2 tablas.

A continuacion detalle el script:
Select T1.C1(ID), T1.C2
From T1
Where C1 not in (Select distinct T2.C3
from T2 where (T2.C2<>0))
And C1 not in(Select C1 from T3 where C5>1)
And C1 not in (Select distinct C1 from T4)

Al probar los select por separado la consulta
es al instante aun que en la T4 los registros de
salida son como 3mil

Estara mal diseñada la consulta ?

Gracias por sus recomendaciones.

Saludos.
 

Leer las respuestas

#1 Alejandro Mesa
20/04/2005 - 16:37 | Informe spam
J Lara,

Prueba la siguiente sentencia y comprueba el resultado y el tiempo de
respuesta respecto a la otra. Asegurate de tener los siguientes indices:

- T1.C1
- T2.C3
- T3.C1
- T4.C1

Select distinct
T1.C1,
T1.C2
From
T1
left join
T2
on T1.C1 = T2.C3 and T2.C2 != 0
left join
T3
on T1.C1 = T3.C1 and T3.C5 > 1
left join
T4
on T1.C1 = T4.C1
where
T2.C3 is null
and T3.C1 is null
and T4.C1 is null
go


AMB


"J Lara" wrote:

Tengo una consulta que es muy lenta para extraer
los datos,incluso me envia entre los registros de
salida algunos errores como "SQL Server connection
time out "

Esta consulta se antoja sencilla no es nada complicado
como para que el server batalle, en esta consulta
se involucran 4 tablas, deseo los datos de la Tabla1
siempre y cuando cumplan un criterio en la T2 y no
exista el C1.ID en ninguna de las otras 2 tablas.

A continuacion detalle el script:
Select T1.C1(ID), T1.C2
From T1
Where C1 not in (Select distinct T2.C3
from T2 where (T2.C2<>0))
And C1 not in(Select C1 from T3 where C5>1)
And C1 not in (Select distinct C1 from T4)

Al probar los select por separado la consulta
es al instante aun que en la T4 los registros de
salida son como 3mil

Estara mal diseñada la consulta ?

Gracias por sus recomendaciones.

Saludos.

Preguntas similares