Optimización en Sistemas de Bases de Datos
Transcripción
Optimización en Sistemas de Bases de Datos
Tema: Optimización en Sistemas de Bases de Datos Facilitador: Lenin Herrera Estudiante: Williams Sebastián Matricula: 15-SISP-1-010 Práctica 5 Optimización en Sistemas de Bases de Datos La optimización del acceso a los datos es vital para el tiempo de carga de la página, debido a que suele ser el factor que más afecta al tiempo que tiene que esperar el navegador para recibir el HTML. Este tiempo de espera es muy importante, ya que el resto de recursos de la página (imágenes, scripts y hojas de estilo), no se empiezan a bajar hasta que el navegador no lee el HTML desde el que se hace referencia a estos recursos. Este tipo de optimización es probablemente la más compleja de todas, en primer lugar porque depende de dos factores variables en el tiempo: por un lado, de cómo y de qué tipo son las consultas que se van a realizar y, por otro, de la carga de trabajo que tenga que soportar el servidor o servidores. En segundo lugar por la gran cantidad de conocimientos que hay que tener para saber reescribir consultas, reescribir el código que ejecuta las consultas, crear índices, vistas materializadas, particiones horizontales y verticales, réplicas, tablas de apoyo, saber elegir los tipos de datos a usar, saber optimizar el esquema sin perder la lógica del modelo de negocio, saber ajustar los parámetros de configuración del SGBD, conocer y saber usar sistemas de caché externos. Además cada uno de estos puntos, de los que hay muchos libros escritos, se debe abordar de forma distinta dependiendo de qué SGBD se trate (MySql, Sql Server, Oracle,…) e incluso de qué versión. Quizás el objetivo más importante al diseñar una aplicación web sea que haga correctamente lo que tiene que hacer en el menor tiempo posible. Esto se logra optimizando el proceso completo que implementa la aplicación; al hacer esta tarea, no sólo se mejora la experiencia del usuario final, sino que se optimizan los recursos de procesamiento utilizados. Una de las áreas fundamentales para lograr tal objetivo es trabajar minuciosamente en el diseño de la base de datos y en la interacción de ésta con la aplicación. El uso de bases de datos siempre producirá un enlentecimiento en las aplicaciones web (aunque esta caída en el rendimiento es en favor de los beneficios que se obtienen al utilizar una base de datos). De esta manera, siendo conscientes de la caída de rendimiento intrínseca que produce la conexión y las consultas a la base de datos, asegurémonos que esta caída de performance sea la menor posible. En este artículo se analizarán varios factores a tener en cuenta al desarrollar aplicaciones ASP con bases de datos Access y SQL Server. Del lado de la base de datos hay cuatro ítems de mayor importancia. Estos cuatro ítems por sí solos usualmente hacen la diferencia entre una aplicación de base de datos rápida y otra extremadamente lenta. Cometiendo errores aquí, un proceso que usualmente toma 1 segundo en completarse puede tomar minutos o incluso horas! o o o o Seleccionar el tipo de base de datos apropiado Diseñar correctamente la estructura de la base de base de datos Optimizar las consultas SQL No almacenar objetos binarios de gran tamaño La codificación de la aplicación también tiene un profundo impacto en el rendimiento. Puede calcular la serie de Fibonacci por fuerza bruta o utilizando una fórmula matemática. La fórmula matemática es algunos órdenes de magnitud más rápida. El mismo principio se aplica al software de computadora. Del lado de la aplicación, aquí van algunos puntos importantes: o o o o o o o o o Las cadenas de conexión Abrir/Cerrar conexiones en los momentos apropiados Evitar el uso del archivo "adovbs.inc" No almacenar conexiones y recordsets en objetos Session o Application Extraer de la base de datos sólo la información necesaria Utilizar cursores y modos de bloqueo apropiados Utilizar variables objeto La propiedad CacheSize del objeto RecordSet Una conexión por página Fuentes: http://www.humanlevel.com/articulos/desarrollo-web/optimizacion-de-base-de-datos.html https://www.argentina-hosting.com/articulos/optimizacion-bases-de-datos/