Inicio Programación Cuando Access no da la talla

Cuando Access no da la talla

por sgoliver

Cuando se tiene entre manos un proyecto pequeño que necesita utilizar una base de datos para almacenar la información necesaria muchos de nosotros recurrimos a nuestra querida base de datos Microsoft Access. Esta solución es perfectamente válida en situaciones en que las necesidades de rendimiento son de nivel medio-bajo, sobre todo teniendo en cuenta el soporte de fábrica incluido con .NET y las «facilidades» que ofrece su interfaz gráfica para realizar el diseño del repositorio de datos.

Sin embargo, cuando necesitamos un mayor rendimiento de nuestra base de datos, ya sea en velocidad, concurrencia o cualquier otro factor que se nos ocurra, MS Access empieza a no ser tan buena solución a nuestro problema.

Éste era el caso en uno de los últimos proyectos en los que he estado involucrado. Nuestra aplicación necesitaba realizar en un tiempo aceptable varios cientos de miles [quizá por encima del millón] de inserciones en nuestra base de datos, de forma que el tiempo de ejecución no se demorara por encima de unos ciertos límites establecidos. Tras unas pruebas iniciales Access demostró no estar a la altura de las circunstacias sobrepasando muy por encima los tiempos que habíamos estimado.

Había que buscar soluciones, o dicho de otra forma, teníamos que encontrar otra base de datos que nos ofreciera un mayor rendimiento en el contexto de nuestra aplicación. Las alternativas planteadas inicialmente eras las clásicas MySQL y PostgreSQL. A pesar de ser buenas soluciones y cumplir nuestros requisitos, por cuestiones de distribución necesitábamos que la instalación de nuestra aplicación fuera lo más pequeña, rápida y directa posible, y cualquiera de estas dos soluciones implicaba la instalación y configuración de un servidor de base de datos, además de la propia aplicación en sí.

Las otras dos alternativas fueron SQLite y Firebird. Tras un pequeño análisis de ambas soluciones, el resultado quedó en empate técnico, siempre en relación a nuestras necesidades específicas. Ambas bases de datos ofrecen al menos un modo de funcionamiento en el que no se depende de ningún servidor por lo que tan sólo hay que distribuir el ficheros de datos (Firebird también puede utilizarse en modo cliente-servidor de forma análoga a MySQL), se pueden integrar fácilmente con aplicaciones desarrolladas en C# (realmente en cualquier lenguaje .NET) ya que existen para ambos proveedores de ADO.NET, las librerías necesarias para su uso dentro de nuestra aplicación son bastante livianas, y cumplen sin problemas nuestros requisitos de rendimiento (en nuestras pruebas particulares con SQLite el tiempo de ejecución se reducía en más del 75% en relación a MS Access).

En los dos próximos artículos publicaré como podemos utilizar estas bases de datos desde nuestras aplicaciones desarrolladas en .NET

También te puede interesar

Dejar un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. Aceptar Más Información

Política de Privacidad y Cookies