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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 J Lara
20/04/2005 - 23:54 | Informe spam
Alejandro, ya efectue la consulta como lo sugeriste y se tarda
casi igual a la anterior, estuve haciendo pruebas quitandole
algun not in y con el que se tarda es con la T4 ya que
esa tabla manejan mas de 100 000 registros y hay muy pocos
que cumplen el distinct.

tal vez tenga que manejar en consulta separada es
ultima parte

Salvo que me sugieras otra cosa.

Gracias por tu ayuda.

Saludos.

"Alejandro Mesa" escribió:

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.
Respuesta Responder a este mensaje
#3 Alejandro Mesa
21/04/2005 - 14:01 | Informe spam
Que me puedes decir sobre los indices?


AMB

"J Lara" wrote:

Alejandro, ya efectue la consulta como lo sugeriste y se tarda
casi igual a la anterior, estuve haciendo pruebas quitandole
algun not in y con el que se tarda es con la T4 ya que
esa tabla manejan mas de 100 000 registros y hay muy pocos
que cumplen el distinct.

tal vez tenga que manejar en consulta separada es
ultima parte

Salvo que me sugieras otra cosa.

Gracias por tu ayuda.

Saludos.

"Alejandro Mesa" escribió:

> 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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida