“Tuning” Universidad Nacional Autónoma de México Bases de datos I

Slides:



Advertisements
Presentaciones similares
Almacenamiento del sistema de archivos La gestión de archivos es uno de los componentes mas visibles de un sistema operativo. Las computadores pueden almacenar.
Advertisements

Normalizaciones de Bases de Datos
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
I11 A y i 11 B Séptimo semestre.
Introducción a LAS Bases de Datos
Supervisión del rendimiento de SQL Server
BASES DE DATOS DISTRIBUIDAS
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Carlos Rojas Kramer Universidad Cristóbal Colón
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
3.4.- Administración de Memoria Virtual.
Windows XP sp3.
Introducción a los Sistemas de Bases de Datos Distribuidos
UNIDAD II Modelo de Datos.
1.1.2 Sistemas de información para la gestión y para la ayuda en la toma de decisiones. Los SI contribuyen activamente a la consecución de los objetivos.
Armando Lechler Avitia
Pierre Sergei Zuppa Azúa Administración de sistemas versus administración de servicios.
HERRAMIENTAS DEL SISTEMA
Bases de datos Distribuidas ITES de la región carbonífera 1 Bases de datos distribuidas.
UNIDAD I Conceptos Básicos.
Elemento Lógico (Software)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
TRADUCTOR DE UN PROGRAMA
Tema 10: Gestión de Memoria
Taller de mantenimiento Laura Rivera Gutiérrez Juliana Medina Ramirez
Técnicas de recuperación de bases de datos
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
Importancia de las aplicaciones de estadística en el control de procesos Guatemala 2010.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Introducción a la Base de Datos
Introducción A Las Bases De Datos
BASE DE DATOS BY: Julián Villar Vázquez.
(Organización y Manejo de Archivos)
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Administración del DBMS E.I. L.E. Prof. Ramón Castro Liceaga SEMINARIO.
Material de apoyo Unidad 4 Estructura de datos
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Capítulo 7 Gestión de memoria.
FUNDAMENTOS DE PROGRAMACION
Introducción a los SOs.
QUE ES UN SISTEMA OPERATIVO Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
COLEGIO DE BACHILLERES N° 16 PLANTEL TLAHUAC “MANUEL CHAVARRIA CHAVARRIA”
Almacenamiento virtual de sitios web “HOSTS VIRTUALES”
Introducción La gestión de bases de datos ha evolucionado.
UNIVERSIDAD LATINA BASES DE DATOS ADMINISTRACIÓN.
MANTENIMIENTO LOGICO DEL PC Melissa Ramírez Serna #28 Maira Alexandra Castaño Restrepo #5 10 informática 2 Soporte técnico.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Departamento de Informática Universidad de Rancagua Profesor: Paula Quitral Reglas BDD.
Metodología de la programación
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Ajustes de configuración de rendimiento (performance & tuning) E.I.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
UNIVERSIDAD LATINA III. MANTENIMIENTO Y GESTIÓN DE LA INFORMACIÓN DE UNA BASE DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
Unidad 2 – Gestión de Procesos
1 FUNDAMENTOS DE BASES DE DATOS SISTEMA GESTOR DE BASES DE DATOS (SGBD) Consiste en una colección de datos interrelacionados y un conjunto de programas.
MARIANA PRECIADO VILLA TELECOMUNICACIONES 11º3
Fundamentos técnicos de la información Andrea Del Salto.
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
BASE DE DATOS EDY GOMEZ C. Lic. En Informatica y Medios Audiovisuales
BASE DE DATOS DISTRIBUIDAS
Proceso de desarrollo de Software
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
 Definir conceptos fundamentales de las BDD como DTM y DBMS.  Conocer el esquema actual de la Base de datos de la UNACH.  Analizar cuándo utilizar.
BASES DE DATOS CONCEPTOS BASICOS Elizabeth Maite Zarate Machaca “El tratamiento eficiente de la información al servicio del usuario”
Conociendo el modelo Cliente-Servidor
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Fundamentos de Auditoria PRIMERA NORMA DE AUDITORIA RELATIVA AL TRABAJO.
Transcripción de la presentación:

“Tuning” Universidad Nacional Autónoma de México Bases de datos I Posgrado en Ciencia e Ingeniería de la Computación Bases de datos I “Tuning” Sergio Cárdenas

El tuning o también conocido como afinación de bases de datos describe un grupo de actividades utilizadas para optimizar y homogenizar el desempeño de éstas. Usualmente se cree que se trata de afinación de consultas, pero se refiere al diseño de archivos de la base de datos, selección del DBMS, sistema operativo y el CPU que utilizará el DBMS. El objetivo es maximizar el uso de los recursos del sistema para que el trabajo sea lo más eficiente y rápido posible. La mayoría de los sistemas están diseñados para administrar el trabajo eficientemente, pero es posible mejorar mucho el desempeño haciendo ajustes en la configuración de la base de datos y en el DBMS. Las aplicaciones pueden correr significativamente más rápido, afinando el rendimiento, ya que nos permite eliminar cuellos de botella y agregar el hardware apropiado.

Los administradores de bases de datos pueden ajustar los sistemas de bases de datos en tres niveles. El nivel inferior es el nivel de hardware (memoria, discos duros). El segundo nivel consiste en los parámetros de los sistemas de bases de datos, como el tamaño de la memoria intermedia y los intervalos de puntos de revisión. El tercer nivel es el nivel superior, incluye el esquema y las transacciones. Los tres niveles de ajuste interactúan entre sí; hay que considerarlos en conjunto al ajustar los sistemas. El conjunto exacto de los parámetros de los sistemas de bases de datos que pueden ajustarse depende de cada sistema concreto de éstas. Requisitos para una correcta afinación: Independencia física de los datos. Es la capacidad de modificar el esquema interno sin alterar el esquema conceptual, ni los programas de aplicación. Medios: Para supervisar automáticamente el uso de la base de datos con el fin de que puedan hacerse los ajustes necesarios.

El rendimiento de la mayor parte de los sistemas suele quedar limitado principalmente por el que presenta un componente o unos pocos, denominados cuellos de botella. La mejora del rendimiento de un componente que no sea un cuello de botella hace poco para mejorar la velocidad global del sistema. Por tanto, al ajustar un sistema, primero hay que intentar descubrir los cuellos de botella y luego eliminarlos mejorando el rendimiento de los componentes que los generan. El tiempo global de ejecución pueden modelarse como sistemas de colas. Cada transacción necesita varios servicios del sistema de bases de datos. Cada uno de los servicios tiene asociada una cola, y puede que las transacciones pequeñas pasen la mayor parte del tiempo esperando en las colas, especialmente en las colas de E/S de los discos.

Los logs de transacción y los espacios temporales son los mayores generadores de E/S. E/S es generalmente la más costosa operación en la base de datos, y es generalmente el primer cuello de botella en los resultados encontrados. Esto puede resolverse agregando más discos o usar sistemas RAID. Se debe tener en cuenta que el factor limitador no es la capacidad del disco, sino la velocidad con la que se puede tener acceso a los datos aleatorios. Las tablas y los índices pueden ser colocados en diferentes discos para balancear las E/S y así prevenir una cola de lectura.

El número de operaciones de E/S puede reducirse almacenando más datos en memoria, lo que compensa el gasto extra.

También se pueden ajustar los índices de un sistema para mejorar el rendimiento. Si las consultas constituyen el cuello de botella, se les poder acelerar creando los índices adecuados en las relaciones. Si lo constituyen las actualizaciones, puede que haya demasiados índices, que hay que actualizar cuando se actualizan las relaciones. La eliminación de índices talvez acelere algunas actualizaciones. La elección del tipo de índice también es importante. Algunos sistemas de bases de datos soportan diferentes tipos de índices. Otro parámetro ajustable es la posibilidad de hacer que un índice tenga agrupación. Sólo se puede hacer un índice con agrupación por relación, guardando la relación ordenada por los atributos del índice.

El uso de las vistas puede acelerar enormemente ciertos tipos de consultas, en especial las consultas de agregación. Las vistas deben emplearse con cuidado, dado que no sólo supone una sobrecarga de espacio almacenarlas sino que, lo que es más importante, su mantenimiento también supone una sobrecarga de tiempo. En el caso del mantenimiento inmediato de las vistas, si las actualizaciones de una transacción afectan a la vista, hay que actualizarla como parte de la misma transacción. Por tanto, puede que la transacción se ejecute más lentamente. En el caso del mantenimiento diferido de las vistas, la vista se actualiza posteriormente; hasta que se actualice puede que la vista sea inconsistente con las relaciones de la base de datos. El empleo del mantenimiento diferido reduce la carga de las transacciones de actualización.

Existen dos enfoques de la mejora del rendimiento de las transacciones: • Mejora de la orientación del conjunto • Reducción de la contención de los bloqueos Los optimizadores avanzados de hoy en día pueden transformar incluso las consultas mal escritas y ejecutarlas de manera eficiente Las consultas complejas que contienen subconsultas anidadas no las suelen optimizar muy bien. Aunque hay un índice que permita el acceso eficiente a las tuplas de una entidad dada, el empleo de varias consultas puede suponer una gran sobrecarga de comunicaciones en los sistemas cliente-servidor. El coste de comunicaciones puede reducirse empleando una sola consulta, capturando los resultados para el lado cliente y pasando por los resultados para hallar las tuplas necesarias.

Otra técnica muy utilizada en los sistemas cliente-servidor para reducir el coste de las comunicaciones y la compilación de SQL, es que las consultas se guarden en el servidor en forma de procedimientos almacenados, que pueden estar compilados anteriormente. Los clientes pueden invocar estos procedimientos en lugar de comunicar consultas enteras. Las transacciones de actualización de larga duración pueden crear problemas de rendimiento con los registros del sistema e incrementar el tiempo que éste tarda en recuperarse de las caídas. Para evitar estos problemas muchos sistemas de bases de datos imponen límites estrictos para el número de actualizaciones que puede llevar a cabo una sola transacción. Puede ayudar fraccionar las transacciones de actualización de gran tamaño en conjuntos de transacciones de actualización de menor tamaño siempre que sea posible.

Otra forma de afinación es optimizar los esquemas de bases de datos. Por ejemplo, considérese la relación cuenta, con el esquema cuenta (número-cuenta, nombre-sucursal, saldo) Donde número-cuenta es la llave. Dentro de las restricciones de las formas normales (BCNF y tercera forma normal) se puede dividir la relación cuenta en dos relaciones: sucursal-cuenta (número-cuenta, nombre-sucursal) saldo-cuenta (número-cuenta, saldo) Las dos representaciones son lógicamente equivalentes, dado que número-cuenta es la llave, pero tienen características de rendimiento diferentes. Si la mayor parte de los accesos a la información de la cuenta sólo examinan número-cuenta y saldo, pueden ejecutarse sobre la relación saldo-cuenta, y es probable que el acceso resulte algo más rápido, dado que no se captura el atributo nombre-sucursal.

Por el mismo motivo, cabrán en la memoria intermedia más tuplas de saldo-cuenta que las correspondientes tuplas de cuenta, lo que vuelve a generar un mayor rendimiento. Este efecto sería especialmente destacado si el atributo nombre- sucursal fuera de gran tamaño. Por tanto, un esquema que consistiera en sucursal-cuenta y saldo-cuenta sería preferible en este caso a otro que consistiera en la relación cuenta. Por otro lado, si la mayor parte de los accesos a la información de la cuenta necesitan tanto saldo como nombre-sucursal, el empleo de la relación cuenta será preferible, dado que se evitará el costo de la fusión de saldo-cuenta y sucursal-cuenta. Además, la sobrecarga de almacenamiento sería menor, ya que sólo habría una relación y no se replicaría el atributo número-cuenta. Otro truco para mejorar el rendimiento es guardar una relación desnormalizada, hay que realizar más esfuerzo para asegurarse de que la relación es consistente siempre que se realice una actualización. Las vistas pueden proporcionar las ventajas que ofrecen las relaciones desnormalizadas, al coste de algún almacenamiento extra

Para comprobar el rendimiento de un sistema de bases de datos incluso antes de instalarlo se puede crear un modelo de simulación del rendimiento de ese sistema. En la simulación se modela cada servicio, como la CPU, cada disco, la memoria intermedia y el control de concurrencia. En lugar de modelar los detalles de un servicio, puede que el modelo de simulación sólo capture algunos aspectos de cada uno, como el tiempo de servicio, es decir, el tiempo que tarda en acabar de procesar una solicitud una vez comenzado el procesamiento. Una vez creado el modelo de simulación para el procesamiento de las transacciones, el administrador del sistema puede ejecutar en él varias pruebas.