Query Lento

20/07/2005 - 01:46 por Merovee | Informe spam
Hola a todos,
Estoy programando en VB .Net y utilizando SQL Server 2000, en el cual guardo
procedimientos almacenados para los reportes.
Un reporte que me causo problemas tardaba cerca de 5 minutos en el
servidor, mientras que en una maquina de desarrollo tarda 20 segundos. Lo
mas raro es que si ejecuto el procedimiento almacenado en el servidor (con
el query analizer) con los mismo parametros tarda los mismos 15 segundos. Lo
mismo tarda (20 segs) cuando se ejecuta el procedimiento desde el query
analizer desde la maquina de desarrollo.

El procedimiento almacenado realiza tres query's, los cuales regresan el
mismo numero de conjuntos de resultados de unos 1000 renglones
aproximadamente el primer query y unos 20 renglones los otros query's. Como
veran, no es mucha la informacion que se regresa.
Lo mas extraño es que solamente la combinacion Sistema - Servidor es la que
se tarda tanto. El query analizer en el servidor saca los resultados rapido,
asi como el sistema en la maquina de desarrollo.

¿Alguien tiene alguna pista de lo que esta pasando?

Gracias de antemano

Preguntas similare

Leer las respuestas

#6 Miguel Vázquez
20/07/2005 - 03:28 | Informe spam
El log de transacciones es grande, cerca de 2 GB (ese es otro problema ya
que la bd mide 150 mb) y el disco duro tiene espacio de 2 GB.

Si fuese un problema de red ¿El query analizer no deberia quedarse trabado
tambien? Al momento de decir que ejecuto el query analizer en el servidor,
quiero decir que lo ejecuto desde mi maquina, pero accesando a la BD que
esta en el servidor.

En caso de que fuera un problema de red, ¿que deberia de checar?, ningun
usuario se ha quejado de ella, y solo este reporte tiene ese comportamiento
raro.

"Isaias" escribió en el mensaje
news:
¿Como andamos de espacio en el disco del servidor de produccion?
¿Que tal el espacio que esta ocupando el LOG de transacciones?
Respuesta Responder a este mensaje
#7 Miguel Vázquez
20/07/2005 - 03:41 | Informe spam
Ya lo resolvi.
Modifique las consultas para que en lugar de filtrar en las clausulas WHERE,
se filtre en las clausulas ON de los INNER JOIN. No se porque, pero con eso
se resolvio el problema. Y digo que no se porque, ya que como muchos de
ustedes me lo hicieron notar (y es mi sentir igualmente) no era un problema
de la consulta SQL, ya que en una maquina si funcionaba y en el servidor no.

De todos modos, no me gustaria quedarme con la duda hacerca de que fue lo
que causo el problema(sigo terco con no echarle la culpa a la consulta) y me
gustaria saber si alguien tiene alguna explicacion.

Gracias.


"Merovee" escribió en el mensaje
news:%
Hola a todos,
Estoy programando en VB .Net y utilizando SQL Server 2000, en el cual
guardo procedimientos almacenados para los reportes.
Un reporte que me causo problemas tardaba cerca de 5 minutos en el
servidor, mientras que en una maquina de desarrollo tarda 20 segundos. Lo
mas raro es que si ejecuto el procedimiento almacenado en el servidor (con
el query analizer) con los mismo parametros tarda los mismos 15 segundos.
Lo mismo tarda (20 segs) cuando se ejecuta el procedimiento desde el query
analizer desde la maquina de desarrollo.

El procedimiento almacenado realiza tres query's, los cuales regresan
el mismo numero de conjuntos de resultados de unos 1000 renglones
aproximadamente el primer query y unos 20 renglones los otros query's.
Como veran, no es mucha la informacion que se regresa.
Lo mas extraño es que solamente la combinacion Sistema - Servidor es la
que se tarda tanto. El query analizer en el servidor saca los resultados
rapido, asi como el sistema en la maquina de desarrollo.

¿Alguien tiene alguna pista de lo que esta pasando?

Gracias de antemano

Respuesta Responder a este mensaje
#8 Alejandro Mesa
20/07/2005 - 14:31 | Informe spam
Miguel,

Sin poder ver el codigo de ambas sentencias, asi como el plan de ejecucion y
la definicion de las tablas involucradas, incluyendo restricciones e indices,
pues es imposible saber lo que esta pasando de tu lado.


Saludos,

AMB

"Miguel Vázquez" wrote:

Ya lo resolvi.
Modifique las consultas para que en lugar de filtrar en las clausulas WHERE,
se filtre en las clausulas ON de los INNER JOIN. No se porque, pero con eso
se resolvio el problema. Y digo que no se porque, ya que como muchos de
ustedes me lo hicieron notar (y es mi sentir igualmente) no era un problema
de la consulta SQL, ya que en una maquina si funcionaba y en el servidor no.

De todos modos, no me gustaria quedarme con la duda hacerca de que fue lo
que causo el problema(sigo terco con no echarle la culpa a la consulta) y me
gustaria saber si alguien tiene alguna explicacion.

Gracias.


"Merovee" escribió en el mensaje
news:%
> Hola a todos,
> Estoy programando en VB .Net y utilizando SQL Server 2000, en el cual
> guardo procedimientos almacenados para los reportes.
> Un reporte que me causo problemas tardaba cerca de 5 minutos en el
> servidor, mientras que en una maquina de desarrollo tarda 20 segundos. Lo
> mas raro es que si ejecuto el procedimiento almacenado en el servidor (con
> el query analizer) con los mismo parametros tarda los mismos 15 segundos.
> Lo mismo tarda (20 segs) cuando se ejecuta el procedimiento desde el query
> analizer desde la maquina de desarrollo.
>
> El procedimiento almacenado realiza tres query's, los cuales regresan
> el mismo numero de conjuntos de resultados de unos 1000 renglones
> aproximadamente el primer query y unos 20 renglones los otros query's.
> Como veran, no es mucha la informacion que se regresa.
> Lo mas extraño es que solamente la combinacion Sistema - Servidor es la
> que se tarda tanto. El query analizer en el servidor saca los resultados
> rapido, asi como el sistema en la maquina de desarrollo.
>
> ¿Alguien tiene alguna pista de lo que esta pasando?
>
> Gracias de antemano
>



Respuesta Responder a este mensaje
#9 Miguel Vázquez
20/07/2005 - 19:07 | Informe spam
gracias
"Alejandro Mesa" escribió en el
mensaje news:
Miguel,

Sin poder ver el codigo de ambas sentencias, asi como el plan de ejecucion
y
la definicion de las tablas involucradas, incluyendo restricciones e
indices,
pues es imposible saber lo que esta pasando de tu lado.


Saludos,

AMB

"Miguel Vázquez" wrote:

Ya lo resolvi.
Modifique las consultas para que en lugar de filtrar en las clausulas
WHERE,
se filtre en las clausulas ON de los INNER JOIN. No se porque, pero con
eso
se resolvio el problema. Y digo que no se porque, ya que como muchos de
ustedes me lo hicieron notar (y es mi sentir igualmente) no era un
problema
de la consulta SQL, ya que en una maquina si funcionaba y en el servidor
no.

De todos modos, no me gustaria quedarme con la duda hacerca de que fue lo
que causo el problema(sigo terco con no echarle la culpa a la consulta) y
me
gustaria saber si alguien tiene alguna explicacion.

Gracias.


"Merovee" escribió en el mensaje
news:%
> Hola a todos,
> Estoy programando en VB .Net y utilizando SQL Server 2000, en el cual
> guardo procedimientos almacenados para los reportes.
> Un reporte que me causo problemas tardaba cerca de 5 minutos en el
> servidor, mientras que en una maquina de desarrollo tarda 20 segundos.
> Lo
> mas raro es que si ejecuto el procedimiento almacenado en el servidor
> (con
> el query analizer) con los mismo parametros tarda los mismos 15
> segundos.
> Lo mismo tarda (20 segs) cuando se ejecuta el procedimiento desde el
> query
> analizer desde la maquina de desarrollo.
>
> El procedimiento almacenado realiza tres query's, los cuales
> regresan
> el mismo numero de conjuntos de resultados de unos 1000 renglones
> aproximadamente el primer query y unos 20 renglones los otros query's.
> Como veran, no es mucha la informacion que se regresa.
> Lo mas extraño es que solamente la combinacion Sistema - Servidor es la
> que se tarda tanto. El query analizer en el servidor saca los
> resultados
> rapido, asi como el sistema en la maquina de desarrollo.
>
> ¿Alguien tiene alguna pista de lo que esta pasando?
>
> Gracias de antemano
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida