Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2007
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
adoquery lento en aplicación

hola compañeros!
tengo el siguiente problema que ya no se por donde cogerlo:
He creado un pequeño programa que consulta una base de datos ubicada en un servidor. Tengo varias consultas que realizo mediante adoquery, pero alguna se queda "colgada" durante varios minutos. Sin embargo, la misma consulta realizada a través del "Analizador de consultas SQL" o cualquier aplicación para acceder a BBDD es instantanea!

Ejemplo: obtener lineas documento P10100 y stocks

SELECT L.AR_REF, L.DL_DESIGN, L.DE_NO, L.DL_QTE,
S.AR_REF, S.AS_QTESTO, S.AS_EMPLACEMENT, S.AS_PRINCIPAL
FROM F_DOCLIGNE L, F_ARTSTOCK S
WHERE L.DO_DOMAINE = 0 AND L.DO_TYPE = 1
AND L.DO_PIECE = 'P10100'
AND L.DE_NO = 1
AND L.AR_REF = S.AR_REF
AND S.DE_NO = 1
(las claves de las 2 tablas aparecen en la clausula where)

Consulta SQLSERVER : tiempo 0.5 segundos
Consulta Adoquery: tiempo 300 segundos!!

he probado poner la adoquery.cursorlocation := cluserserver pero no mejora nada el tema.

Alguna sugerencia?
Gracias por la ayuda
Responder Con Cita
  #2  
Antiguo 19-02-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Revisa el plan de ejecución desde SQL server, por si acaso.
Otra cosa que se me ocurre es que se te esté produciendo un DeadLock con alguna otra consulta que tengas en el programa y te quede bloqueada. Eso explicaría porqué desde SQL server es instantánea.

¿Cuandos registros devuelve? ¿Trabajas con transacciones?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 19-02-2007
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
Gracias Neftali,
he puesto esta consulta la primera de la ejecución del programa para evitar "arrastrar" una ejecución anterior. Pero todo sigue igual de lento!
la consulta solo devuleve 1 o 2 filas y no puedo usar transacciones por culpa del driver que controla la BBDD.
Responder Con Cita
  #4  
Antiguo 19-02-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Puedes diseñar la consulta utilizando JOIN's?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 19-02-2007
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
Creo que si puedo hacer JOIN.
Responder Con Cita
  #6  
Antiguo 19-02-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Intenta hacer la Join a ver qué tiempos salen...
De todas formas aun haciendo producto cartesiano (que es lo que está pasando ahora), las tablas deberían tener muchos registros para llegar a esos tiempos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 19-02-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
a mi me paso algo que fue una tonteria pero bueno, cuando hacia una consulta sobre 100 mil registros en el programa se tardaba mucho y en el Servidor nada, solucion, el programa "apuntaba" al manejador de bases de datos de mi equipo no al del servidor...
Responder Con Cita
  #8  
Antiguo 19-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Time Out

Tratá de extender el timeout de la consulta, quizás no se da en el tiempo establecido y se 'muere' la consulta. Sino esa consulta volcala a un Stored Procedure y en la consulta apuntas al SP. Espero te sirva de algo...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Muy lento Sql IVAND SQL 8 27-01-2010 03:59:52
Fox con ADO muy lento Leonardo Conexión con bases de datos 2 08-03-2005 18:08:19
ADO lento CHiCoLiTa Conexión con bases de datos 6 28-07-2004 17:59:46
MDI lento tomasgarcia OOP 1 27-07-2004 20:28:05
lento carlomagno Firebird e Interbase 4 02-07-2004 13:48:08


La franja horaria es GMT +2. Ahora son las 17:50:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi