Pregunta

Algunas preguntas sobre las bases de datos de MS Access -

Tamaño: ¿Existen límites para el tamaño de una base de datos de acceso? La razón por la que pregunto es que tenemos una base de datos de acceso que tiene algunas tablas simples. El tamaño de la base de datos es de aproximadamente 1 GB. Cuando hago una consulta, veo que tarda más de 10 minutos en ejecutarse.

Con la indexación adecuada, MS Access debería poder manejar esto o existen limitaciones fundamentales en la tecnología.

Esto es MS Access XP.

Además, ¿MS Access es compatible con transacciones db, confirmaciones y retrotracción?

¿Fue útil?

Solución

Obtendrá muchas respuestas variadas aquí, pero en MI OPINIÓN el acceso simplemente no existe como una solución escalable. No maneja muy bien las situaciones multiusuario, a medida que comienza a acercarse a 1Gb de tamaño, la estabilidad comienza a convertirse en una preocupación importante, y en realidad simplemente no tiene el rendimiento.

Con respecto al soporte de transacciones, consulte este archivo Microsoft Artic .

También, aquí hay un artículo que señala una buena mayoría de limitaciones de acceso .

Otros consejos

En respuesta -

Tamaño: el tamaño máximo de una base de datos de Access es de 2 GB.

Transacciones: las transacciones son totalmente compatibles con el motor de base de datos JET subyacente.

Por experiencia anterior, me inclino a decir que probablemente esté alcanzando el tamaño máximo utilizable y que tal vez deba considerar el uso de SQL Server Express.

Personalmente, he encontrado que el límite 'utilizable' está en el rango de unos doscientos megabytes.

El acceso está diseñado y pensado para bases de datos pequeñas. Para los grandes, es decir, los que están más allá de algo que usted y un par de personas están usando, debería estar viendo un "real". RDBMS como SQL Server, ORacle, DB2, MySQL, etc.

EDIT : consulte http: //www.blueclaw-db .com / vb_transaction_processing.htm para una forma de manejar transacciones con Access. Al parecer no es nativo.

El tamaño máximo de una base de datos de Access es de 2 GB. Puede solucionar esto utilizando tablas vinculadas en otros archivos, pero es probable que sea hora de usar una base de datos más sólida si ya tiene problemas de rendimiento.

Mi recomendación sería consultar SQL Server Compact , que es una base de datos sin costo, basada en archivos o, mejor aún, SQL Server Express , que es sin costo, " lite " Versión de SQL Server que admitirá múltiples usuarios e interoperabilidad con SQL Server. Ambos te limitan a bases de datos de 4GB.

Todos los productos mencionados, incluido el acceso, las transacciones de soporte.

No estoy seguro de si todavía están allí en la versión XP, pero en Access 97, había opciones compactas y de reparación. Si estas siguen siendo opciones, pueden ayudar.

Aunque esto se remonta a muchos años en un momento en que el costo de ingreso en una instalación de SQL Server era tan prohibitivo como Oracle, uno de mis clientes estaba usando Access para tratar de administrar un centro de llamadas entrante.

Estamos hablando de conceptos de bases de datos muy grandes VLDB de 40 millones de filas. Esto fue durante la era en que las compañías telefónicas desplegaron la identificación de llamadas y ofrecieron a sus suscriptores una forma de recibir un dispositivo gratuito de identificación de llamadas. Debido a las restricciones de costos, tuvieron que ignorar mis peticiones para hacer la inversión de SQL Server.

En la práctica, parecía que Access se había derrumbado a unos 800 MB. Hemos dividido las tablas en varias bases de datos de Access para manejar la carga. Lo creas o no, funcionó muy bien. El cliente estaba agradecido.

En la práctica, dada la disponibilidad de SQL Express, yo también recomendaría ir por esa ruta.

Mi impresión al leer los grupos de noticias de Access a lo largo de los años es que el motor ACE / Jet (.accdb, .mdb o .mde) solo se recomienda hoy en día cuando se usa MS Access como un entorno de desarrollo basado en formularios RAD que usa formularios enlazados. Si no tiene un front-end de Access, hay pocos argumentos a favor de un back-end de ACE / Jet cuando se consideran las alternativas mucho más escalables (y capaces): SQL Server Express o SQL Server Compact Edition para tiendas MS, MySQL, etc.

Como reafirma el soporte de transacciones en el motor ACE / Jet, sí, es presente y nativo Otra respuesta vinculada a un artículo sobre el uso de transacciones a través de DAO: tenga en cuenta que muchos aspectos de DAO están limitados porque su desarrollo se retrasa con respecto al motor y las transacciones, como ejemplo. Felizmente, puede usar SQL DCL: COMENZAR LA TRANSACCIÓN, COMPRAR LA TRANSACCIÓN, ROLLBACK TRANSACCIÓN, etc. para lograr cosas que no son posibles con DAO, por ejemplo. Transacciones anidadas. SQL DCL requiere que la interfaz de acceso esté en el modo de consulta ANSI-92; el uso de ADO funcionará porque ADO usa este modo de forma nativa. Para más detalles, vea:

Microsoft Jet SQL avanzado para Access 2000

Jet puede ser un muy buen almacén de datos para cualquier número de plataformas de desarrollo de escritorio, no solo con Access. Siempre ha sido una primera opción para los desarrolladores de VB y aún lo es (por una buena razón).

Un MDB de 1 GB que no se espera que crezca mucho no debería ser un problema en términos de velocidad o confiabilidad. Si es lento, entonces no lo has indexado correctamente, o estás escribiendo SQL muy ineficiente. Un ejemplo de SQL ineficiente sería aplicar cláusulas WHERE a las expresiones, que por lo tanto no pueden usar índices, un ejemplo sería

WHERE Year([MyTable].[MyDate]) = 2002

a diferencia de

WHERE MyTable.MyDate Between #1/1/2002# And #12/31/2002#

Si tiene problemas de estabilidad (es decir, corrupción recurrente), es un problema que debe abordarse; generalmente se debe a un error humano, problemas de hardware o software (como el software AV que interfiere con las operaciones de escritura de Jet internas) .

Pero el determinante clave es qué tan rápido está creciendo el MDB. Si extrapola la tasa de crecimiento histórico y se acerca a 2GB dentro de 5 años, diría que necesita aumentar su tamaño pronto. Si es más como 10 años, probablemente deberías hacerlo de todos modos. Si son 20 años, entonces, no tanto.

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