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 22-09-2014
edwin.simon edwin.simon is offline
Miembro
NULL
 
Registrado: oct 2011
Posts: 30
Poder: 0
edwin.simon Va por buen camino
existe alguna forma de mejorar el rendimiento en una DB

Hola buen día, tengo un sistema de carnetización con mas de 4 mil registro donde cada registro tiene una foto ya deben imaginar como se mueve la Base de Datos super lenta, estaba cambiando la programación para solo grabar la ruta de dicha foto pero se complica por la cantidad de registro y no tengo toda las fotos física.

estoy usando Access y Delphi 7, como puedo hacer para mejorar o resolver este problema.

mil gracias
Responder Con Cita
  #2  
Antiguo 22-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes hacer lo que dices, o cambiar a una BD mejor, por ejemplo, firebird.
Porque 4 mil registros no es nada.
Responder Con Cita
  #3  
Antiguo 22-09-2014
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
No se si Access soporte SQL, pero puedes correr un script o procedimiento que recorra la tabla y cambie la ruta en vez de la imagen.

Para las imagenes faltantes, puedes usar una generica. Es decir, todas las faltantes que apunten a la misma sin descripción.

¿Cuentanos, esa aplicación es mono usuario?
Responder Con Cita
  #4  
Antiguo 22-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
edwin.simon,

Cita:
Empezado por edwin.simon
...tengo un sistema de carnetización con mas de 4 mil registros...cada registro tiene una foto...usando Access y Delphi 7...¿existe alguna forma de mejorar el rendimiento?...


Te comento:

1- Access es una base de datos personal, ideal para el manejo de pequeñas cantidades de datos, sin embargo no es adecuada para este tipo de procesamiento a nivel de producción el cual demanda gran cantidad de I/O.

2- Te sugiero considerar como una opción importante Firebird, es una base de datos fácil de instalar y mantener y capaz de manejar miles registros por tablas de forma concurrente sin deterioro del performance.

3- Además de Firebird existen otras opciones a considerar como PostgreSQL y MySQL, para su manejo desde Delphi puedes considerar el uso de los componentes de acceso de datos ZeosLib.

4- Si por alguna razón no puedes optar por ninguna de las opciones anteriores, puedes extraer las imágenes de la BD y salvarlas en un directorio, sustituyendo luego el campo BLOB de estas por una campo de dirección que indique el PATH de las mismas.

Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
  #5  
Antiguo 22-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola edwin.simon
Cita:
Empezado por edwin.simon Ver Mensaje
Hola buen día, tengo un sistema de carnetización con mas de 4 mil registro donde cada registro tiene una foto ya deben imaginar como se mueve la Base de Datos super lenta, estaba cambiando la programación para solo grabar la ruta de dicha foto pero se complica por la cantidad de registro y no tengo toda las fotos física.

estoy usando Access y Delphi 7, como puedo hacer para mejorar o resolver este problema.

mil gracias
No he usado MS Access en mis proyectos, pero mas allá de la conveniencia de cambiar RDBMS, punto en el que coincido con mis compañeros, me parece muy extraño que 4000 registros, que es prácticamente nada, sea el motivo de la lentitud.

Creo que Access tiene que manejar bién muchas veces esa cantidad de registros si no ya no estaría en el mercado. Recuerdo haber leído 100000 registros, 25 Mb y unos 1500 requerimientos diarios como cifras manejables por Access.

Lo que no nos has comentado es el tamaño de cada registro y como menciona MAXIUM, si es una aplicación monousuario.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 22-09-2014
edwin.simon edwin.simon is offline
Miembro
NULL
 
Registrado: oct 2011
Posts: 30
Poder: 0
edwin.simon Va por buen camino
el tamaño general de la Base de Datos es 1.26 GB y si es mono-usuario, el problema es que no se si cambiando de BD tengo que cambiar la codificación del programa........?
y gracias a todo por su comentarios
Responder Con Cita
  #7  
Antiguo 22-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
4 mil registros y 1.26 gigas no me parece "normal". Yo miraría esas fotos carnet, a ver de qué tamaño se están creando. Seguro que son mucho más grande de lo necesario
Responder Con Cita
  #8  
Antiguo 22-09-2014
edwin.simon edwin.simon is offline
Miembro
NULL
 
Registrado: oct 2011
Posts: 30
Poder: 0
edwin.simon Va por buen camino
el tamaña esta entre 300 y 470 kb
Responder Con Cita
  #9  
Antiguo 22-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si, ya había hecho el cálculo mentalmente, creo que es excesivo para una foto carnet de apenas 4x3 cm ¿no?
Responder Con Cita
  #10  
Antiguo 22-09-2014
edwin.simon edwin.simon is offline
Miembro
NULL
 
Registrado: oct 2011
Posts: 30
Poder: 0
edwin.simon Va por buen camino
hay alguna forma donde yo pueda reducir le el tamaño automáticamente, ej. si la foto tiene un tamaño de 400 kb como puedo hacer para que de forma automática la reduzca a un tamaño X, claro si es posible?
Responder Con Cita
  #11  
Antiguo 22-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Claro que puedes, haz una búsqueda por los foros, se ha tratado en diversas ocasiones. Si no lo encuentras, crea un nuevo hilo.
Responder Con Cita
  #12  
Antiguo 22-09-2014
edwin.simon edwin.simon is offline
Miembro
NULL
 
Registrado: oct 2011
Posts: 30
Poder: 0
edwin.simon Va por buen camino
mil gracias a todos nuevamente especial a Casimiro Notevi, disculpe por tanta palabra de agradecimiento pero cuando una persona dedica un minuto de su tiempo para tratar de ayudar me no tengo mas que agradécele.

haré un búsqueda para ver que consigo
Responder Con Cita
  #13  
Antiguo 22-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En google, pon esto:
Código:
cambiar tamaño imagen site:www.clubdelphi.com
Responder Con Cita
  #14  
Antiguo 22-09-2014
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Hay que evaluar si es necesario reducir las imágenes, ya que pueden ser útiles para impresión. Es decir, una imagen reducida en peso y/o tamaño, no sería practico en elc aso de imprimir fichas o algo más detallado.

Tampoco se si Access soporte formatos JPG. Se que en ese caso, hay que agregar código para recuperar y meter fotos. Aún así, considero mucho más recomendable que las imágenes estén fuera de la DB, pese a los posibles riesgos que ello implica (perdida de ellas o movimiento de datos a un nuevo equipo o servidor).

También y pese a la corriente del foro, me inclinaría en ESTE CASO, el usar SQLite como base de datos, junto con las ventajas comparativas a access e incluso Firebird... me refiero que a lo más incluirías una dll en vez de todo un motor para tan "poca cosa".

Y si, la base de datos que tienes, es realmente excesiva.
Responder Con Cita
  #15  
Antiguo 22-09-2014
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Falta lo mas importante. QUE ES lo lento? Para poder resolver cualquier problema de rendimiento, hay que medir primero, y determinar exactamente que/donde esta el culpable. Como dicen los compañeros, 4000 registros no es nada, y de hecho, no le veo tampoco problema en si mismo a que la BD sea del tamaño que es.

Asi que antes de nada, tienes que saber exactamente, que es lento.
__________________
El malabarista.
Responder Con Cita
  #16  
Antiguo 23-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
edwin.simon,

Cita:
Empezado por mamcx
...Falta lo mas importante. ¿QUE ES lo lento? Para poder resolver cualquier problema de rendimiento, hay que medir primero...


Pregunto:

1- ¿En que versión de Windows se ejecuta la aplicación en cuestión?, ¿32 o 64 Bits?.

2- ¿Cuales son las características físicas del equipo que corre la aplicación a nivel de procesador, disco y memoria?, ¿El disco es rápido?.

3- ¿La aplicación corre en un equipo Standalone o en Red?.

4- ¿Hay algún antivirus activo que pueda ralentizar la aplicación?.

5- ¿Que versión de Access utilizas?, ¿Que componentes de acceso de datos utilizas?, ¿Que proveedor de conexión utilizas : Nativo o ODBC?.

6- ¿Exactamente cual es el momento en que detectas que la aplicación esta lenta?, ¿Que tipo de procesamiento provoca la ralentización?, ¿Es una constante o es aleatorio?, ¿La tabla en cuestión tiene índices asociados?, ¿Hay alguna otra aplicación que compita por la tabla en cuestión?, ¿Hace cuanto tiempo se presento esta situación?, ¿Cual es el promedio de uso de la aplicación?, ¿Cual es el crecimiento promedio anual esperado de la tabla en cuestión?

Todas las preguntas anteriores son relevantes al momento de un análisis de rendimiento (Y muchas más interrogantes dependiendo del entorno y tipo de aplicación), sin embargo como comente en el Msg #4, Access es una BD a nivel personal, no para entornos de producción, quizás esta sea una buena oportunidad para hacer un Upgrade a tu aplicación y mejorar el rendimiento a nivel general en lo que respecta a la BD.

En lo concerniente al tamaño y cantidad de registros de la BD (4 mil registros, 1.26 GB), es cierto que para una BD como Firebird, SQL Server o DB2, estos son valores intrascendentes, pero en el caso de Access no aplica de igual forma.

Cita:
Empezado por answers.microsoft

How many record Microsoft Access can Hold?

Access doesn't measure capacity in terms of # of records. An Access 2010 database file can grow to 2 Gig. You can get around this by using linked files for your data tables.

Tomado de : How many record Microsoft Access can Hold?
Es decir : Tu BD esta aproximadamente al 63% de su capacidad máxima.

Revisa esta información:
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 23-09-2014 a las 00:39:09.
Responder Con Cita
  #17  
Antiguo 23-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Realmente está muy cerca de la máxima capacidad, hay que dejar un margen hasta esos 2 gigas. Yo me preocuparía. Lo primero en este caso es extraer esas imágenes y almacenarlas en un directorio aparte.
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
mejorar rendimiento firebird con una conexion de red lenta hibero Firebird e Interbase 4 26-05-2008 11:03:17
Busco mejorar el rendimiento Bkewater Windows 7 11-01-2008 19:03:53
Mejorar el rendimiento en inserciones másivas dec Trucos 1 13-07-2007 04:55:13
Exportar a TXT-Mejorar rendimiento andresenlared MS SQL Server 9 19-05-2007 00:01:04
Mejorar rendimiento usando ODBC??? Tanis30 Conexión con bases de datos 3 15-12-2006 14:45:59


La franja horaria es GMT +2. Ahora son las 19:44:15.


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