FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
¿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. |
#5
|
|||
|
|||
Creo que si puedo hacer JOIN.
|
#6
|
||||
|
||||
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. |
#7
|
|||
|
|||
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...
|
#8
|
|||
|
|||
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...
|
|
|
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 |
|