Pregunta

Por lo tanto, en mi lugar de trabajo, que tienen un enorme archivo de acceso (se utiliza con MS Access 2003 y 2007). El tamaño del archivo es de aproximadamente 1,2 GB, por lo que toma un tiempo para abrir el archivo. No podemos eliminar cualquiera de los registros, y tenemos alrededor de 100 + mesas (cada mes creamos más de 4 mesas, no pide!). ¿Cómo puedo mejorar esto, es decir, reducir el tamaño del archivo?

¿Fue útil?

Solución

así .. Escuchar a @Larry, y tener en cuenta que, en el largo plazo, usted tiene que encontrar otra base de datos para almacenar los datos!

Sin embargo, en el corto plazo, estoy muy preocupado por esto "4 nuevas tablas al mes". 4 mesas por mes es 50 por año ... Eso seguramente suena extraño a cada "gestor de base de datos" aquí. Así que por favor nos dice:? Cuántas filas, ¿cómo se construyen, para qué sirven, y por qué tiene que construir tablas de todos los meses

En función de lo que está haciendo con sus datos, también se puede pensar en el archivo de algunas tablas como archivos XML (o incluso XLS?). Esto podría tener sentido para los datos "históricos", que no tienen que acceder a través de relaciones, vistas, etc. Un buen ejemplo sería la lista de llamadas telefónicas recogida de un PABX. Los datos se pueden guardar como / cargado desde archivos XML / XLS a través de registros ADODB o el método TransferirBaseDatos

Otros consejos

Puede hacer dos cosas:

  • Utilice tablas vinculadas
  • "compacto" la base de datos (s) cada vez en cuando

Las tablas vinculadas no en sí mismos de limitar el tamaño total de la base de datos, pero lo hará "paquete" en archivos más pequeños y más manejables. Mirar en esto:

'File' menu + 'Get External data' + 'Linked tables'

Las tablas vinculadas también tienen muchas ventajas tales como permitir que uno de mantener múltiples versiones del subconjunto de datos, y la selección de un conjunto particular a través del gestor de tablas enlazadas.

La compactación de bases de datos recupera el espacio perdido de otra manera como diversas operaciones CRUD (Insertar, eliminar, actualizar ...) fragmentar el almacenamiento. También reagrupar las tablas e índices, haciendo la búsqueda más eficiente. Esto se hace con

  'Tools' menu + 'Database Utilities' + 'Compact and Repair Database...'

Realmente estás empujando contra los límites de MS Access allí - ¿eres consciente de que el archivo no puede crecer más de 2 GB

?

supongo que ya ha examinado los datos para su posible ahorro de espacio a través de la normalización adicional? Puede "archivo" algunas de las tablas de los meses anteriores en los archivos MDB separados y luego ellos (de forma permanente o según sea necesario) enlace a su base de datos "actual" (en cuyo caso se tendría en realidad estar beneficiándose de lo que probablemente fue una mala decisión de otro modo para iniciar nuevas tablas para cada mes).

Pero, con esa cantidad de datos, es probable que sea hora de empezar a planificar para mover a una plataforma más capacidad.

Usted debe realmente pensar en su arquitectura db. Si no hay ningún vínculo entre las tablas se podría intentar mover algunos de ellos a otra base de datos (db Uno por año :) como una solución a corto plazo ..

¿Cómo agregar más tablas de cada mes: que ya es una actitud cuestionable, y parece sospechoso en relación con la normalización de datos
. Si haces eso, sospecho que la estructura de su base de datos también es sub-óptima en relación con los tamaños de campo, tipos de datos e índices. Yo realmente empezar por doble control de esos.

Si realmente tiene una justificación para las tablas mensuales (que no puedo imaginar, una vez más), ¿por qué no tener 1 back-end por mes?
También podría tener el back-end principal, con, digamos, 3 mes de datos en línea, y luego una db archivo, en el que pasar sus discos más antiguos.
Yo uso que para las transacciones, con la mesa principal tiene alrededor de 650.000 registros, y el acceso es muy sensible.

Un par de “Agarrando a un clavo ardiendo” las ideas

Mira los tipos de datos para cada columna, es posible que pueda almacenar algunos números como bytes ahorrando una pequeña cantidad por registro

Mira los índices y deshacerse de los que no utilice. En las tablas grandes índices innecesarios se puede agregar una gran cantidad de sobrecarga.

Me + 2 ^ 64 las sugerencias sobre el diseño de bases de ser un poco extraño, pero nada que no se haya dicho hasta me planteo el punto de trabajo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top