Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-05-2008
Avatar de RolphyReyes
RolphyReyes RolphyReyes is offline
Miembro
 
Registrado: ago 2004
Ubicación: Santo Domingo
Posts: 285
Poder: 23
RolphyReyes Va por buen camino
Exclamation

Saludos.

Prueba a ver si te falta algún indice por el campo que vas a ordenar, si usas IbExpert te marcara si esta consulta utiliza un PLAN NATURAL y podrás poner el indice adecuado.

Hasta luego.
__________________
Gracias,
Rolphy Reyes
Responder Con Cita
  #2  
Antiguo 27-05-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 23
Angel Fernández Va por buen camino
Gracias a todos por vuestras intervenciones.
Hasta ahora todos los intentos son infructuosos. Como me indican Al y Casimiro he mirado el programa paso a paso y el parón se produce al hacer open.
Lo de los drivers que apunta luchifer no es porque uso firebird 2.0 y no tengo problema en otros programas.
Lo de un posible virus, hombre nunca se puede descartar eso, pero me llevo el programa a otro ordenador y produce el mismo resultado. Que haya el mismo gusano en dos ordenadores distintos es poco probable, a no ser que sea mi programa el que lo lleva. Acabo de pasarle el antivirus y nada.
Ahora mismo, lo único que se me ocurre es que sea un bug de los componentes MDO. Curiosamente, desde IBManager la consulta es rápida, y desde otro programa mío que no usa MDO sino FIBPLUS también es rápida. Y también curioso que todo este problema me lo da única y exclusivamente con una tabla, la de sensores, que sólo tiene 70 datos aunque estoy haciendo pruebas continuamente y estoy añadiendo y borrando datos. Y la lentitud se produce también si accedo a sensores desde un MDOQUERY.
Tengo otra tabla que recoge los datos de los sensores, con 5 millones de datos y consultas mucho más complicadas tardan 40 segundos.

Ahorita mismo estoy totalmente perdido. Sólo se me ocurre sustituir el MDO por FIBPLUS.
¡Ah! Lo que me apuntaba juanelo: he leído la información que me sugerías pero no he sacado nada en claro. Al parecer a aquella persona le pasaba lo mismo que a mí pero no logró solucionarlo o no lo indica.
Otro dato: la base de datos FB tiene extensión FDB y no GDB que, al parecer, da problemas.
Si consigo alguna solución, la comentaré.
Un saludo.
Responder Con Cita
  #3  
Antiguo 27-05-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 23
Angel Fernández Va por buen camino
Añadido:

Lo que comenta Rolphi de los índices ya lo he revisado y todos los campos por los que ordeno tienen índice.

Un saludo.
Responder Con Cita
  #4  
Antiguo 27-05-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Te agradezco que hayas retroalimentado el hilo.

Cita:
Empezado por Angel Fernández Ver Mensaje
...Hasta ahora todos los intentos son infructuosos...he mirado el programa paso a paso y el parón se produce al hacer open....Sólo se me ocurre sustituir el MDO por FIBPLUS...
Compila el programa con la opción "Use Debug DCUs" (opciones del proyecto) y coloca un punto de ruptura (break point) en la sentencia que hace el "Open". Cuando llegue ahí el programa, usa la tecla F7 para entrar a ese método y luego combina F7 con F8 según convenga para navegar en los fuentes y ver en qué parte concreta de MDO/VCL se está demorando y por qué.

Esperamos tus comentarios.

Al.
Responder Con Cita
  #5  
Antiguo 27-05-2008
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Y de paso puedes extraer un metadata de la base de datos y de los datos de esa tabla para que probemos con MDO también. Si puedes, claro.
Responder Con Cita
  #6  
Antiguo 28-05-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 23
Angel Fernández Va por buen camino
He sustituido los componentes MDO por FIBPLUS y hasta ahora, las pruebas que he hecho han sido satisfactorias, es decir, el problema parece haberse arreglado.
Sin embargo y por intentar arrojar un poco de luz a este asunto y poder ayudar a alguien que le pase lo mismo, he hecho lo que me apunta Al y he intentado depurar el programa paso a paso con F7, incluso dentro de los distintos componentes. Lamento decir que no lo he conseguido porque me meto en un berenjenal que no parece tener fin: entro en forms, system, mdoquery y un larguísimo etcétera de unidades y procesos. Al cabo de 15 minutos de estar dándole a F7 me he mareado, he pulsado F9 y ¡aparece el parón pero no sé dónde!
Sin duda es mi culpa pues mis conocimientos son muy escasos y estoy dando los segundos pasos con firebird (no los primeros, pero casi).

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Y de paso puedes extraer un metadata de la base de datos y de los datos de esa tabla para que probemos con MDO también. Si puedes, claro.
Lo que son datos de la tabla de sensores y tipo de sensores creo que sí puedo darte (no puedo darte los datos que recogen los sensores pues esos pertenecen al cliente). Lo de metadata no sé muy bien qué es; con IBManager he hecho un export metadata de la tabla de sensores y me da algo así (perdón por el formateo de los datos):

RecId Field Name Description Field Type Domain Not Null Default Source Computed Source
1 IDSENSOR INTEGER RDB$64 True
2 IDPROYECTO INTEGER RDB$65 True
3 IDTIPOSENSOR INTEGER RDB$66 True
4 REF CHAR(6) RDB$67 True
5 UBICACION VARCHAR(150) RDB$68 False
6 NOMBRE VARCHAR(50) RDB$69 False
7 ACTIVO 0 Inactivo, 1 Activo SMALLINT RDB$70 True 1
8 BUENAFUNCION 0 No va bien. 1 va bien. SMALLINT RDB$13 True 1

Si lo que quieres es eso, puedo extraer esos datos de la tabla sensores, tipo de sensor y alguna otra a la que apunta sensores y enviártelos mejor formateados.

Gracias a todos por vuestra ayuda y un saludo.
Responder Con Cita
  #7  
Antiguo 28-05-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 23
Angel Fernández Va por buen camino
Añadido:

He copiado los mdodataset que me dan el problema y los he copiado a otra aplicación nueva. Estoy intentado discernir si el problema ocurre sólo con mi aplicación o es de los mdo.
El caso es que lo he probado y funciona bien, pero claro, acababa de probarlo en mi aplicación con lo cual ya no es la primera vez que se ejecuta.
Estoy dando palos de ciego... a ver si entre todos hallamos una solución.

Gracias otra vez.
Responder Con Cita
  #8  
Antiguo 28-05-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Cita:
Empezado por Angel Fernández Ver Mensaje
...por intentar arrojar un poco de luz a este asunto y poder ayudar a alguien que le pase lo mismo, he hecho lo que me apunta Al y he intentado depurar el programa paso a paso con F7, incluso dentro de los distintos componentes. Lamento decir que no lo he conseguido porque me meto en un berenjenal que no parece tener fin: entro en forms, system, mdoquery y un larguísimo etcétera de unidades y procesos. Al cabo de 15 minutos de estar dándole a F7 me he mareado...
No subestimes la complejidad de la VCL.

Hay que usar F8 también, con puro F7 demorarías varias semanas en encontrar el problema.

Creo que este otro mensaje puede orientarte al respecto:
http://www.clubdelphi.com/foros/show...22&postcount=4

Un saludo.

Al.
Responder Con Cita
  #9  
Antiguo 02-06-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 23
Angel Fernández Va por buen camino
Hola a todos. Por aquí de nuevo, con algo de retraso pero es que voy muy liado últimamente.

Casi he conseguido localizar dónde se produce el parón. Con F8 como me indicaba Al va mucho mejor que F7 que era para salir loco .

Al grano: he dicho "casi" porque tengo el procedimiento donde se produce el parón, pero no la línea. El procedimiento es el siguiente:
TMDOSQL.Prepare

Ahora no puedo pasarle otra vez el F8 porque el problema, recordad, era sólo para la primera vez. (Manda huevos).

En fín, aquí sigo, investigando...

Un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ayuda con consulta lenta, lenta, lenta Gregory Mazon Firebird e Interbase 22 27-06-2007 09:56:38
Consulta sencilla sobre ms access fybeyancourt Tablas planas 2 05-03-2007 22:51:58
Error raro en consulta sencilla papulo SQL 1 16-09-2005 10:41:42
Consulta Sencilla SQL + Delphi Maury Manosalva SQL 4 08-09-2005 11:17:47
Consulta muy lenta Walterdf Conexión con bases de datos 2 25-08-2004 18:37:57


La franja horaria es GMT +2. Ahora son las 14:52:56.


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