BD en Access Inflada

Ante todo recibe mis saludos..
Cuento con una BD en Access 97 la cual diariamente ingresan regular datos (unos 650 registros diarios). Esta BD trabaja con una Aplicación en VB6.
Mi problema surge cada 3-4 meses aproximadamente en donde la base de datos (de unos 350MB)se hincha a más de 1Gb, llegando a su tamaño máximo y no permitiendo el ingreso de más datos, lo que hago es compartar la BD lo cual me demora 1/2 hora en compactar toda la BD.
Mis preguntas son:
- ¿A qué se debe que se hinche la base de datos?
- ¿Es posible prevenir estos problemas? ¿De qué manera?

2 respuestas

Respuesta
1
Normalmente una base de datos se hincha cuando trabajamos en modo diseño de formularios, informes, etc., y esto sucede con access desde siempre. En este caso se produce por las asignaciones en memoria que hace el depurador de visual basic, por lo que siempre es conveniente compilar todos los módulos y compactar la base de datos al terminar el diseño.
Si no es este tú caso, es decir, la sobredimensión viene solo por la tarea habitual de introducir datos, hay que tener en cuenta que también cuando se eliminan registros, estos van dejando espacio temporal en la tabla, cosa que se soluciona al compactar claro.
Nota:
Si estas usando la versión de access 97 o posterior, creo que puedes usar el "Compactar y reparar un archivo de Access automáticamente cada vez que se cierre":
...
La compactación no tiene lugar si cierra una base de datos compartida de Access mientras otro usuario la tiene abierta.
1. Abra la base de datos de Access o proyecto de Access que desee compactar automáticamente.
2. En el menú Herramientas, haga clic en Opciones.
3. Seleccione la ficha General.
4. Active la casilla de verificación Compactar al cerrar.
Saludos..
Seguí los pasos que me indicas para compactar una BD al salir, pero no encuentro la bendita orden. Intente abriendo la BD en forma Exclusiva y nada, busque por otras opciones y nada.
Trabajo con Access 97
Disculpa por la molestia y de nuevo muchas gracias.
No es molestia, tendrás que disculparme tú a mi. Acabo de revisar el access 97 y esa opción de compactar al cerrar no está disponible. Es a partir del access 2000.
Solo me queda recomendarte una pequeña aplicación que te facilitará las tareas de compactar, la puedes encontrar en:
http://www.fabalou.com/FullPrograms/Dbbackup.htm
Disculpas. Es posible que con lo dicho anteriormente no resuelvas el problema.
Ahora si, te sugiero el articulo del hb de microsoft:
Q209979 ACC2000: How to Compact Databases At a Scheduled Time
Disponible en:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q209979
Discuplas de nuevo:
Jet Compact Utility Available in Download Center
Disponible en:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q295334
NOTA: lo acabo de probar con una .mdb de access 97
Respuesta
1
La verdad es que estas utilizando una base de datos MONSTRUOSAMENTE GIGANTESCA!
Deberías empezar a pensar urgentemente a utilizar otro tipo de base de datos, ya sea SQL-Server, Oracle o cualquier otra gran base de datos..
Otra cosa que podrías hacer es dividir la base de datos en distintas bases de datos... porque no creo que sólo tengas una tabla, ¿verdad?
La base de datos se infla cada vez que hacemos alguna actualización en la base de datos, ya sea para agregar registros o para eliminar registros... si además utilizamos la base de datos para generar tablas temporales, entonces ya es demasiado...
Lo único que se me ocurre es que hagas un proceso por el que una vez por semana te compacte la base de datos.
Saludos.
Jordi Pérez i Madern
Mataró (Barcelona)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas