Cuándo y cómo aumentar el tamaño de las bases de datos de Microsoft Access a SQL Server

Ahora que ha visto las diversas arquitecturas y opciones de motor de base de datos disponibles, querrá explorar los puntos de decisión y los parámetros para tomar la decisión de aumentar el tamaño.

La parte más importante de este proceso es comprender que no es necesario ampliar todas las bases de datos de acceso. De hecho, la mayoría de las aplicaciones de acceso no deben aumentarse: el costo y la interrupción del negocio simplemente no son un uso rentable de sus recursos. Estas bases de datos funcionan bien en el día a día y no necesitan atributos como escalabilidad, seguridad y confiabilidad al 100%. De todas las bases de datos de acceso en su organización, solo unas pocas son candidatas para el aumento de tamaño.

Además, de la lista de candidatos para el aumento de tamaño, una mayoría puede aumentarse utilizando un proceso rentable donde solo los datos se mueven a SQL Server. Toda la funcionalidad de la aplicación en términos de formularios e informes se mantiene en acceso. Solo el porcentaje más pequeño de proyectos de ampliación implica reescribir la aplicación de acceso en un nuevo entorno como .NET.

 Oportunidades de ampliación de Microsoft Access para SQL Server

La siguiente sección examina cada una de las áreas clave involucradas en la planificación de bases de datos y analiza cómo se desempeña Access en cada área.

Seguridad

Microsoft Access ofrece tres mecanismos de seguridad diferentes.

  1. Contraseñas de base de datos: Asigne una contraseña a una base de datos. Solo los usuarios que conocen la contraseña pueden abrir la base de datos.
  2. Seguridad de grupos de trabajo de Jet: Se pueden definir permisos de usuarios, grupos y objetos para restringir quién puede ver/editar datos y qué pueden ejecutar. La seguridad de grupos de trabajo está disponible para bases de datos MDB, pero no para bases de datos ACCDB.
  3. Cifrado de archivos: El contenido de la base de datos se puede cifrar a nivel de archivo. El cifrado ACCDB es significativamente mejor que el cifrado para MDB.

Desafortunadamente, estos mecanismos no son robustos ni confiables. Las contraseñas de la base de datos utilizan un mecanismo de cifrado muy simple. De hecho, eliminar una contraseña de base de datos de acceso es un asunto simple, ya que los «removedores» de contraseñas gratuitos y comerciales se encuentran fácilmente en la web. Si bien los usuarios de Access pueden no estar preocupados por tales lapsos, los gerentes de TI ciertamente deberían estarlo.

Aunque la seguridad de grupo de trabajo de Jet es más robusta, aún deja el contenido de toda la base de datos MDB abierto desde el sistema de archivos. Dado que todos los datos y códigos de la tabla se almacenan a simple vista, es un asunto trivial abrir un archivo MDB en un editor compatible con cadenas y ver el código, las contraseñas y los datos de la tabla.

Finalmente, dado que el acceso requiere permisos de lectura completos para todos los usuarios al archivo de base de datos real, cualquier persona que pueda ver una unidad de red compartida puede caminar con la base de datos en un disco o CDR o enviarla por correo electrónico fuera de su organización.

Si la seguridad es importante, SQL Server es mucho más seguro que Microsoft Access, Excel, Word o cualquier otro programa que almacena sus archivos directamente en el disco duro accesible para el usuario.

Confiabilidad y mantenimiento

La confiabilidad es uno de los puntos de referencia clave a examinar al considerar el aumento de tamaño. De hecho, para muchas aplicaciones de misión crítica, la confiabilidad es la consideración más importante. Microsoft Access no es tan fiable como SQL Server por varias razones.

Corrupción de la base de datos

Cuando las bases de datos de Microsoft Access/Jet encuentran un error interno inesperado o un problema de conexión, pueden dañarse. Una base de datos corrupta generalmente bloquea a todos los usuarios de la base de datos y resulta en la pérdida de datos y la interrupción del negocio.

Las bases de datos de Microsoft Access/Jet son más propensas a la corrupción que SQL Server por varias razones. Dado que Access / Jet utiliza un modelo de uso compartido de archivos, todos los usuarios mantienen simultáneamente conexiones activas a los datos. Si alguno de esos usuarios pierde inesperadamente la conexión, la base de datos puede dañarse. La pérdida de conexión puede ocurrir si la conexión de red del usuario es intermitente, las versiones del controlador no están actualizadas o se utilizan versiones conflictivas de las DLL de Jet para leer el mismo archivo de base de datos.

Microsoft Access incluye una utilidad compacta / de reparación, pero esta utilidad no soluciona los daños graves de la base de datos. Los servicios de reparación de terceros están disponibles, pero esto requiere enviar la base de datos afectada a otra ubicación, pagar una tarifa y esperar a que se devuelva con resultados mixtos.

Problemas de mantenimiento

Windows permite copiar una base de datos de Microsoft Access incluso si las personas la tienen abierta, por lo que puede crear una copia de seguridad, pero eso puede ser un problema si alguien está modificando los datos en el momento en que se copia el archivo.

Compactar una base de datos de Microsoft Access requiere que todos los usuarios estén fuera de la base de datos, lo cual es problemático para soluciones que se ejecutan 24/7. Se coloca un bloqueo en la base de datos a nivel de archivo (*.ldb o *.archivos laccdb) tan pronto como es abierto por el primer usuario.

Programar la base de datos de Microsoft Access Compactar y RepararSupervisar las bases de datos de Microsoft Access en tiempo realEn un entorno multiusuario, Microsoft Access no le dice quién se encuentra actualmente en la base de datos, por lo que puede ser un dolor de cabeza administrativo sacar a las personas del sistema. Nuestro programa de Administración de Acceso Total le permite monitorear a los usuarios que entran y salen de la base de datos en tiempo real, lo que ayuda y puede compactar la base de datos después de que todos salgan, pero no es una función incorporada de Microsoft Access.

A menudo es difícil coordinar el proceso para garantizar que todos los usuarios cierren sesión en una aplicación de acceso antes de realizar una copia de seguridad.Los escenarios típicos implican que los usuarios dejen sus computadoras encendidas cuando salen de la oficina por el día. Esto deja la base de datos abierta y el software de copia de seguridad no podrá copiar de forma fiable el archivo de la base de datos. A menudo, esto solo se detecta después de que falla la copia de seguridad, dejando que el administrador del sistema rastree el problema y espere que se resuelva antes de que se ejecute la siguiente copia de seguridad.

Además, Microsoft Access no se ajusta automáticamente como SQL Server. No recupera automáticamente el espacio perdido de la base de datos ni optimiza los índices y las consultas. Este mantenimiento se realiza ejecutando la función reparación/compacto. Nuestro programa de Agente Visual Total le permite automatizar esto en un horario que especifique y mantener un seguimiento de auditoría, pero no es una función incorporada de Microsoft Access.

Si una organización no realiza copias de seguridad periódicas de bases de datos de escritorio individuales, las personas pueden crear bases de datos de acceso en sus equipos que nunca se respaldan ni se mantienen. Las organizaciones pueden tratarlos como datos de usuario que se pueden perder como si se tratara de una hoja de cálculo de Excel o un documento de Word, pero deben existir mejores políticas para que los usuarios puedan guardar sus bases de datos donde se proporciona la administración básica del sistema.

Es necesario realizar copias de seguridad de las bases de datos de Microsoft Access para la recuperación ante desastres y compactarlas periódicamente para que se mantengan en buen estado. Se debe implementar un sistema automatizado para ocuparse de eso para las muchas bases de datos de acceso que existen hoy y las que se creen en el futuro. Se debe considerar la ampliación de SQL Server para las bases de datos en las que tales procesos automatizados no se pueden implementar debido al uso continuo de la base de datos o el costo de perder cualquier dato es alto.

Escalabilidad

La escalabilidad se define como la capacidad de una aplicación para funcionar de manera aceptable a medida que aumenta el número de usuarios o procesos que llaman a la aplicación. En algunas situaciones, Microsoft Access / Jet no puede escalar para soportar la demanda en la base de datos.

Arquitectura de base de datos dividida

Antes de realizar la ampliación, la base de datos Access debe tener una arquitectura de base de datos dividida. Esto separa la base de datos de aplicaciones de usuario de la base de datos compartida de back-end. Los enlaces de la base de datos de aplicaciones front-end a la base de datos compartida y las actualizaciones son más fáciles porque no es necesario modificar los datos para las nuevas versiones (las estructuras de tablas siempre que no se modifiquen). Para obtener más información, consulte nuestro documento sobre la Arquitectura de base de datos Dividida de Microsoft Access para admitir Entornos Multiusuario, Mejorar el Rendimiento y Simplificar el Mantenimiento. La arquitectura de base de datos dividida también ayudará en un esfuerzo de ampliación para preservar el front-end de acceso existente.

Si una sola copia de una base de datos de Microsoft Access reside en una unidad de red y está siendo abierta por varios usuarios a la vez, es posible que tenga un problema de escalabilidad. Pero eso debe abordarse mediante el uso de una arquitectura de base de datos dividida en lugar de aumentar el tamaño a SQL Server.

Número de usuarios simultáneos

Ha habido mitos acerca de que las bases de datos de Microsoft Access no pueden admitir más de 20 usuarios. Ese puede haber sido el caso cuando se introdujo Microsoft Access en 1992, pero no ha sido el caso durante bastante tiempo.

Microsoft Access permite técnicamente hasta 255 conexiones por base de datos. Eso significa que se puede usar para aplicaciones para equipos muchas veces que si no todos necesitan usarlo al mismo tiempo.

El número de conexiones / usuarios que una base de datos de Acceso puede admitir depende de lo bien que se diseñó e implementó la aplicación. Una aplicación de acceso bien diseñada puede admitir más de 100 usuarios simultáneos con un rendimiento decente. Por otro lado, una aplicación de acceso mal diseñada puede ejecutarse en un rastreo con dos usuarios. O algunos procesos consumen mucho tiempo y serán lentos sin importar qué base de datos se use. En realidad no se trata de la tecnología, sino de la implementación.

Desafortunadamente, muchas bases de datos de Acceso no están bien diseñadas o implementadas con las mejores prácticas. Esto se debe a que la mayoría de las bases de datos de Acceso son creadas por usuarios que simplemente no tienen la experiencia o el conocimiento para crear aplicaciones de bases de datos profesionales. Se construyen a lo largo del tiempo y se incorporan nuevas características y modelos de datos a medida que surge la necesidad. El resultado es una solución global que no puede soportar de forma fiable a más de unos pocos usuarios.

No aumente el tamaño de las aplicaciones de Microsoft Access por razones de recuento de usuarios si el número de usuarios simultáneos es relativamente bajo. El aumento de tamaño debe considerarse si se necesita admitir más de 100 usuarios simultáneos y más en el futuro.

Tamaño máximo de la base de datos

Cada base de datos de Microsoft Access tiene un tamaño máximo de 2 GB. Eso es una gran cantidad de datos numéricos y de texto, pero se puede superar fácilmente si se almacenan archivos y gráficos. Para la gran mayoría de las bases de datos de Microsoft Access, eso es mucho más grande de lo que la base de datos jamás obtendrá. A veces, las bases de datos se vuelven grandes, pero una base compacta generalmente la reduce a un tamaño más razonable. Asegúrese de descompilar también las bases de datos de Microsoft Access de vez en cuando al compactar.

Con una arquitectura de base de datos dividida, una aplicación de Microsoft Access puede vincular datos de varias bases de datos de Microsoft Access que suman más de 2 GB. Por supuesto, ese no es un buen diseño si los datos no se deben dividir en varias tablas o bases de datos.

Se debe considerar el aumento de tamaño si la base de datos excede 1 GB o excederá 2 GB en un futuro próximo.

Diferentes versiones de Microsoft Access y Jet

 Lanzador de bases de datos de Microsoft Access Hay muchas versiones de Microsoft Access. Una solución de base de datos Access puede depender de una versión particular de un formato de base de datos Access, depender de características que solo están disponibles en ciertas versiones de Access, componentes como ADO y DAO, etc. Si bien es fácil distribuir una base de datos de Acceso a usuarios que ya tienen Access instalado en su PC, no es tan fácil controlar qué versión de Access se abre para ejecutarla.

Un PC puede tener varias versiones de Access instaladas en él. Al abrir un archivo ACCDB o MDB, se inicia directamente la versión de acceso asociada a esa extensión de archivo (por lo general, la última versión de acceso que se abrió).

Además, cuando se introdujo Access 2000, el nuevo formato de archivo MDB no era compatible con la versión anterior de Access 97. Abrir la base de datos en Access 2000 (o posterior) podría actualizar la base de datos al nuevo formato y evitar que los usuarios de la versión anterior la abrieran, lo que era un problema en entornos multiusuario. Este problema no se ha repetido desde la versión de 2000.

Nuestro programa de inicio de Acceso total ayuda a las organizaciones a administrar e implementar de forma centralizada bases de datos de Microsoft Access en el escritorio de cada usuario y controlar qué versión de Access se inicia para él. Esto facilita la distribución de sus aplicaciones de acceso con un acceso directo, y la última versión de su base de datos siempre se instala en el equipo de cada usuario. También facilita la actualización de la aplicación de una versión de Access a otra.

Los problemas de administración de diferentes versiones de Microsoft Access o de distribución de actualizaciones de bases de datos de Microsoft Access no se resuelven mediante la migración a SQL Server si mantiene el front-end de Access de la base de datos. Solo se puede abordar reemplazando Microsoft Access por completo. Eso puede resolver el problema inmediato, pero evita que los usuarios terminen su trabajo. Hemos visto a organizaciones prohibir Microsoft Access solo para que los empleados compren productos de base de datos peores, ya que el problema de la base de datos no desapareció. Para la mayoría de las organizaciones, no es práctico usar desarrolladores profesionales para crear todas las bases de datos necesarias cuando la mayoría pueden ser manejadas por los usuarios finales.

Rendimiento

El rendimiento es una razón común por la que las personas desean actualizar sus bases de datos de Microsoft Access a SQL Server. Se supone que SQL Server se ejecutará más rápido que una base de datos de Microsoft Access. Después de todo, SQL Server es administrado por un servidor separado que solo envía los registros solicitados y puede usar varias CPU y máquinas para administrar grandes conjuntos de datos.

Microsoft Access, al estar basado en archivos, envía toda la base de datos, tabla o índice en función de la solicitud para que el cliente (PC) procese.

 Microsoft Access Database Analyzer Si bien esto daría ventaja al enfoque de servidor, hemos encontrado que el rendimiento NO mejora en muchas situaciones. Aquí hay algunas razones:

  • Muchas bases de datos de acceso son relativamente pequeñas (menos de 100 MB). Con el hardware actual y la conectividad de red, las cantidades de datos que se pasan son casi instantáneas, ya sean unos pocos registros o toda la tabla.
  • SQL Server realiza un trabajo adicional que las bases de datos de Acceso no realizan. Por ejemplo, SQL Server puede mantener un registro de transacciones y realizar un mantenimiento continuo que agrega sobrecarga. Hemos visto disminuciones en el rendimiento cuando las bases de datos pequeñas se amplían a SQL Server.
  • SQL Server está diseñado para manejar bases de datos muy grandes mucho más allá del límite de acceso de 2 GB. No está optimizado para lo que consideraría pequeñas bases de datos.
  • Realizar consultas desde diferentes fuentes de tablas vinculadas puede no beneficiarse de la optimización de SQL Server, ya que el trabajo aún lo realiza Access
  • El almacenamiento en caché de datos de Microsoft Access para tablas de acceso existe porque sabe si los datos han cambiado. Para los datos de SQL Server, el almacenamiento en caché en memoria no es posible porque los datos pueden haber cambiado desde la última solicitud.
  • Un conjunto de tablas, consultas o código VBA mal diseñado se ejecutará lentamente, independientemente de si los datos están en Access o SQL Server.

Antes de ampliar el tamaño a SQL Server por razones de rendimiento, asegúrese de que su base de datos de Access esté optimizada para que se ejecute tan bien como pueda en Access. Ir a SQL Server no solucionará problemas graves de diseño de bases de datos y consultas. En realidad, arreglarlos en Access es más fácil que hacerlo más tarde en SQL Server, por lo que el tiempo y el esfuerzo dedicados a hacerlo se conservan si aumenta el tamaño más tarde.

Para asegurarse de que su base de datos de Microsoft Access no tenga problemas graves, utilice nuestro programa Analizador de acceso total para documentar y analizar su base de datos. Detecta más de 300 tipos de errores, sugerencias de diseño y problemas de rendimiento que pueden ayudarlo a optimizar su base de datos de acceso.

Para bases de datos de Microsoft Access relativamente pequeñas, no aumente el tamaño a SQL Server únicamente por razones de rendimiento. Puede haber una disminución en el rendimiento después del aumento de tamaño. Busque formas de optimizar los problemas de acceso antes de realizar la inversión para aumentar el tamaño. Los problemas de rendimiento pueden no estar relacionados con el almacenamiento de datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Previous post El huerto de calabazas de Picha Farms en Puyallup, WA
Next post Connect. Descubrir. Compartir.