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 30-11-2004
Avatar de sercornejov
sercornejov sercornejov is offline
Miembro
 
Registrado: may 2003
Ubicación: Neiva - Colombia
Posts: 88
Poder: 22
sercornejov Va por buen camino
Para GURU's (bases de datos)

Hola.

Desarrolle una aplicación que controla el ingreso de personal en las entidades privadas y públicas. la base de datos está en MSAccess.

el problema está en que se toma una foto del visitante para control y como son muchos (50.000 en un año) pues el archivo de la foto no lo guardo en la base de datos sino en el disco y punteo la ruta en un campo de la tabla.

La cosa es que ya van 50000 archivos de fotos (3-5 Kb) y el proceso comienza a ser lento. La BD solo tiene 20 Mb

No se como mas hacerlo para que sea más rápido.

Que me recomiendan? (base de datos nueva? Cual?)

Saludos desde Colombia
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar...
Responder Con Cita
  #2  
Antiguo 30-11-2004
Sinaloense Sinaloense is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
Sinaloense Va por buen camino
Necesitas ser más específico con el equipo (Hardware) en el cual esta la base de datos.
Responder Con Cita
  #3  
Antiguo 30-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo pienso que esto no debería ser lento así tengas 1000000 de registros, a menos, claro, que cada vez que consultes la tabla mandes llamar a todos los registros. De ser así tendrás que establecer criterios de búsqueda para limitar la petición de registros a sólo unos cuantos.

// Saludos
Responder Con Cita
  #4  
Antiguo 30-11-2004
Avatar de sercornejov
sercornejov sercornejov is offline
Miembro
 
Registrado: may 2003
Ubicación: Neiva - Colombia
Posts: 88
Poder: 22
sercornejov Va por buen camino
bueno:

El equipo mas bajo en el que corre es un Pentium III de 800 Mhz, 128 RAM y disco duro de 40 Gb a 5400 rpm.

en la tabla de los visitantes se guardan 8 campos, tres varchar(50), uno autonumerico, dos de fecha, dos mas tipo entero largo. en uno de los varchar se guarda la ruta de la foto. e.j. "C:\archivos de programa\argos\data\foto\91272235.jpg"

La base de datos tiene en estos momentos 48760 usuarios diferentes (48761 archivos de fotos, pues hay uno que se llama 'nofoto.jpg')

La tabla de visitas tiene 124567 visitas, aunque esta tabla, aparte de una fecha, solo guarda índices para referenciar.

La aplicación, cuando se entra la cédula del visitante, hace un LOCATE en la tabla de visitantes, si el locate funciona, busca el archivo de la foto (la ruta del cual está en la tabla) y si el archivo esxiste se lo asigna a un TImage, sino le asigna el archivo 'nofoto.jpg'.

Los archivos solo tienen entre 3 y 5 K

Entre otras, la pregunta omejor el consejo que quiero es si es mejor seguir manejandolo así como lo tengo, o mejor usar otra base de datos y guardar las fotos en la BD como blob o algo parecido.

El problema se agranda cuando tiene que trabajar en red, pues ahí si que es lento...

He pensado en bases como MySQL, Interbase 6.0 o 7.0 (este último es una opción remota por aquello de la licencia) o Firebird 1.5.

Los equipos nuevos (para dos puntos más que vendí) son: Pentium IV de 2.4 Mh, 256 RAM, D.D. 80 Gb a 7200 rpm

Gracias por contestar...
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar...
Responder Con Cita
  #5  
Antiguo 30-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Como te dije, no creo que deba alentarse. No sé qué componentes uses para conectarte a Access (¿ADO?) pero más que un LOCATE yo haría una consulta SQL del estilo

Código SQL [-]
select visitas where campo_llave = llave de la visita

con lo que sólo mandas traer un registro en caso de que exista. Esto te sirve tanto para insertar una nueva visita o editar una ya existente.

// Saludos
Responder Con Cita
  #6  
Antiguo 30-11-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
La base de datos tiene en estos momentos 48760 usuarios diferentes (48761 archivos de fotos, pues hay uno que se llama 'nofoto.jpg')
El número de Registros es pequeño para que vaya lenta, supongo que alguna vez la habrás compactado, con lo cual mejora bastante el rendimiento.

Por otra parte, 48761 Registros en una carpeta ahí igual puede estar el problema de la lentitud, lo que tarda quizás es en encontrar la foto, yo haría una prueba con 1.000 fotos solamente, si mejora muchísimo el rendimiento, entonces pondría un campo autoincremento sino lo tiene la tabla, y crearía 10 ó más carpeta si fueran necesarias, repartiendo las fotos en estas, de acuerdo al número ID de la tabla.
\fotos - Sería la carpeta genérica y luego con un simple If contra el ID, el camino quedaría \fotos\5000 - \fotos\10000.......

Es decir el famoso método divide y vencerás.

Si haces la prueba y te da resultados, nos comunicas.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
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


La franja horaria es GMT +2. Ahora son las 17:52:44.


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