PDA

Ver la Versión Completa : Problemas con mis programas


rufo
19-09-2008, 19:11:52
Hola soy nuevo en este foro y expreso el siguiente problema que tengo,hace tiempo estoy haciendo un programa que se dedica almacenar informacion y hago consultas de esta informacion la base de datos que estoy usando es Access 2003 y el lenguaje que estoy usando es Delphi 5 tengo una pc P4 a 2.4 ghz y de memoria 2gb disco duro de 320gb, bueno les comento que de unos meses hasta la fecha se a lentado mis aplicaciones que creo en delphi ya que al inserta un objeto o al ejecutar mi formulario para ver mis avances tarda mucho, ya modifique mi Blob Size a 1000 y mi Blob cache a 65000 pero sigue igual, tambien les comento que de esa base de datos he hecho mas programas que estan conectado mas que nada a la base de datos principal pero cada programa tiene su Data Module que hago la coneccion a mi BD de access, entonces necesito su ayuda para ver como puedo hacer para que mis programas se ejecute mas rapido o que tengo que hacer, bueno muchas gracias y espero respuesta

egostar
19-09-2008, 19:22:48
Hola rufo

Y no será algún detalle en tu máquina, por ejemplo algún proceso que está consumiendo la memoria, algún virus, etc.

Puedes verificar en el administrador de tareas que aplicación está consumiendo el procesador.

Salud OS

rufo
19-09-2008, 20:05:03
Hola gracias por responder pero ya cheque el administrador de tareas y se incrementa cuando hago alguna modificacion o ejecuto ya vi mis procesos o programas y de virus pues tengo actualizado mi antivirus, tambien les comento que he formateado mi pc y vuelve pasar lo mismo cuando vuelvo a poner a diseñar mis programas, se debera a la base de datos o que podra ser?

Caral
19-09-2008, 20:17:38
Hola
Me da la impresión de que se debe a la forma en que se esta llamando a la base de datos.
Una cosa es que el programa este lento y otra que este lento cuando pide información a la base de datos.
Saludos

ContraVeneno
19-09-2008, 23:22:45
Si utilizaste componentes TTable o similares, tu aplicación cada día se ira haciendo más lenta dependiendo del número de registros que se vayan guardando.

pablopessoa
20-09-2008, 14:51:27
Hola , mira por lo que leo, vos tenes varias aplicaciones que con su propio datamodule se conectan a una misma base. Usas Conexiones Ado no?
Si es asi, es posible que tu problema este en el uso de Access como motor de bases, la idea es que access no es tan permisivo con conexiones simultaneas como seria SQL, lo mas probable es qeu atienda las peticiones por turnos y si a eso le sumas la demora de que las tablas cada ves son mas grandes, cada consulta que hagas va a tardar mas no solo en resolverla, sino en atender "la cola de espera",Me explico?, es un trabajo grande, pero fijate de controlar que las tablas solo se abran y se cierren cuando se usan y no que queden en Active desde el comienzo hasta el fin de la aplicacion.

rufo
20-09-2008, 15:50:41
Ok y me puedes decir que puedo hacer para que cuando inice la ejecucion de mi programa no llame a todas las tablas si cuando yo se lo pida o que me recomiendas que haga, gracias

pablopessoa
20-09-2008, 16:20:56
en el datamolude, deja activa solo la coneccion a la base de datos.. todos los adotable(o los componentes de las tablas) ponelos con "Active=false", entonces cuando corras el programa no vas tener nada ligado a las tablas.
Entonces, cuando necesites usar una tabla.. por ejemplo.. quiero cargar x dato y guardarlo, mientras cargas los datos no tocas nada.. entonces en el OnClick del boton Guardar recien pones la tabla a usar en true, grabas y cuando termina volves a poner la tabla en false. Eso deberias hacerlo con todas las cosas que necesiten poner o sacar datos de tablas. Sino algo menos laborioso pero no tan efectivo, es habilitar las tablas que use un Form en el OnCreate o el OnActiv y cerrarlas el en Onclose del Form. Proba asi y fijate si te da un mejor resultado

duilioisola
21-09-2008, 11:17:07
Se me ocurre también, que el problema pueda estar en los índices que tengan las tablas.

Verifica que las consultas que haces puedan untilizar algún índice existente en la base.

También puedes ver si hay alguna opción en Access para balancear índices. En muchos motores de base de datos existe alguna opción para esto.

Una variante para es hacer un backup y un restore de la base para que genere nuevamente los índices.

Nota: Gente, se agradecerían comas, puntos, puntos y aparte... Están escribiendo párrafos larguísimos y difíciles de seguir.