Si quieres que las operaciones con tu Base de Datos sean muy rápidas entonces hay 6 aspectos fundamentales que debes considerar:

  1. Hardware
  2. Software
  3. Red
  4. Administración
  5. Diseño de la Base de Datos
  6. Programación

El hardware es todo lo relacionado a la parte física de la computadora donde se encuentra el Servidor del Firebird, la conexión de red y las computadoras clientes. Esto engloba a: cantidad de memoria RAM, cantidad de núcleos, cantidad de discos duros, tipos de discos duros, capacidad de los discos duros, tarjetas de red, router, cablerío, etc.

El software se refiere al Sistema Operativo utilizado, el cual siempre debe ser una versión Server. Por ejemplo: Windows Server, Ubuntu Server, FreeBSD, OS X Server, AIX, HP-UX. ¿Por qué? porque las versiones Server están optimizadas para trabajar como servidores de bases de datos. En cambio las versiones “normales” son para los usuarios que quieren ejecutar sus aplicaciones de Contabilidad, de Control del Stock, navegar por Internet, revisar sus e-mail, visitar su Facebook, jugar sus jueguitos, etc. Estas versiones “normales” también pueden usarse como servidores de bases de datos pero no les pidas velocidad porque no están pensadas para eso.

La red está íntimamente relacionada con el hardware y con la administración. Por un lado, debes instalar tarjetas lo más rápidas posibles, jamás usar tarjetas inalámbricas porque degradan la velocidad, tener un router de buena calidad (olvídate totalmente de esos chinitos que cuestan casi lo mismo que una docena de caramelos), usar el cablerío adecuado, asegurarte que la distancia siempre sea al menos un 20% menor a la especificada (por ejemplo 1000BASE-T tiene un alcance de unos 100 metros, no uses más de 80), y por el otro lado asegurarte que la red se use exclusivamente para comunicarse con las bases de datos y para nada más. Si permites que la red la usen también con Internet y los muchachos se dedican a descargar canciones, vídeos y películas, pues no habrá red que te aguante.

La administración se divide en dos partes: una, la correspondiente al Firebird; otra, la correspondiente a las bases de datos. En la correspondiente a Firebird: ¿qué arquitectura estás usando: SuperServer, Classic, SuperClassic? ¿Cuántos núcleos están configurados? ¿en cuál disco guardas los archivos temporales? ¿en cuál disco haces el shadow?. En la correspondiente a la Base de Datos: ¿cuál es el tamaño del caché? ¿cuál es el tamaño de la página? ¿qué valor tienen la OAT y la NT? ¿cuáles son las estadísticas de los índices? ¿cuántos usuarios concurrentes tienes como máximo? ¿el sweep es manual o automático? ¿cada cuánto tiempo se hace un backup con GBAK? ¿hay transacciones que demoran mucho tiempo, cuál es el programa culpable?, etc.

El diseño de la Base de Datos es fundamental para conseguir buenos rendimientos. Aquí deberías preguntarte: ¿están todas las tablas normalizadas? ¿todas las tablas tienen las restricciones que deberían tener? ¿faltan índices para hacer las consultas más rápidas? ¿sobran índices, pues hay algunos que casi nunca se usan? ¿se pueden cambiar las estructuras de algunas tablas para conseguir mayores velocidades en las operaciones? ¿faltaría algún trigger?, etc.

En relación a la programación debes preguntarte: ¿todas las transacciones finalizan con un COMMIT o con un ROLLBACK? ¿están todas las consultas optimizadas?  ¿Hay momentos en los cuáles se realizan inserciones masivas de datos? ¿se pueden hacer transacciones más cortas?, ¿se puede reemplazar un stored procedure por otro más rápido?, ¿se puede reemplazar una vista por otra más rápida (quizás usando tablas temporales, tablas CTE, etc.)?, ¿se puede mejorar la velocidad de las inserciones masivas de datos?, etc.

Conclusión:

Como puedes ver, conseguir un rendimiento óptimo de las bases de datos no es sencillo porque involucra a muchos aspectos diferentes. Si mejoras cualquiera de ellos entonces verás un aumento en las velocidades pero para llegar al máximo debes mejorarlos a todos. Claro, eso tomará tiempo y dinero así que debes evaluar si vale la pena hacer el trabajo de optimización.

Artículos relacionados:

¿Cuál Sistema Operativo usar en el Servidor?

Consejos para optimizar el rendimiento de las bases de datos

Consultas lentas, causas y soluciones

El índice del blog Firebird21

Anuncios