El ajuste de la base de datos describe un grupo de actividades que se utilizan para optimizar y homogeneizar el rendimiento de una base de datos . Por lo general, se superpone con el ajuste de consultas , pero se refiere al diseño de los archivos de la base de datos, la selección de la aplicación del sistema de gestión de bases de datos (DBMS) y la configuración del entorno de la base de datos ( sistema operativo , CPU , etc.).
El objetivo del ajuste de la base de datos es maximizar el uso de los recursos del sistema para realizar el trabajo de la forma más eficiente y rápida posible. La mayoría de los sistemas están diseñados para administrar el uso de los recursos del sistema, pero aún hay mucho margen para mejorar su eficiencia mediante la personalización de sus ajustes y configuraciones para la base de datos y el DBMS.
Se examina la configuración de hardware y software de los subsistemas de disco: niveles y configuración de RAID , [1] asignación de tamaño de bloques y bandas , y la configuración de discos, tarjetas controladoras , gabinetes de almacenamiento y sistemas de almacenamiento externo como SAN . Los registros de transacciones y los espacios temporales son grandes consumidores de E/S y afectan el rendimiento de todos los usuarios de la base de datos. Colocarlos adecuadamente es crucial.
Las tablas e índices que se unen con frecuencia se colocan de modo que, a medida que se solicitan desde el almacenamiento de archivos, se puedan recuperar en paralelo desde discos separados de manera simultánea. Las tablas e índices a los que se accede con frecuencia se colocan en discos separados para equilibrar la E/S y evitar la puesta en cola de lectura.
El ajuste del DBMS se refiere al ajuste del DBMS y a la configuración de la memoria y los recursos de procesamiento del equipo que ejecuta el DBMS. Esto se realiza normalmente mediante la configuración del DBMS, pero los recursos involucrados se comparten con el sistema host .
El ajuste del DBMS puede implicar la configuración del intervalo de recuperación (tiempo necesario para restaurar el estado de los datos a un punto particular en el tiempo), la asignación de paralelismo (la división del trabajo de una sola consulta en tareas asignadas a diferentes recursos de procesamiento) y los protocolos de red utilizados para comunicarse con los consumidores de la base de datos.
La memoria se asigna para datos, planes de ejecución , caché de procedimientos y espacio de trabajo [ aclarar ] . Es mucho más rápido acceder a los datos en la memoria que a los datos en el almacenamiento, por lo que mantener una caché de datos considerable hace que las actividades se realicen más rápido. La misma consideración se da al espacio de trabajo. El almacenamiento en caché de los planes de ejecución y los procedimientos significa que se reutilizan en lugar de volver a compilarlos cuando es necesario. Es importante utilizar la mayor cantidad de memoria posible, dejando suficiente para que otros procesos y el sistema operativo la utilicen sin paginar excesivamente la memoria en el almacenamiento.
A veces, los recursos de procesamiento se asignan a actividades específicas para mejorar la concurrencia . En un servidor con ocho procesadores, se podrían reservar seis para el DBMS a fin de maximizar los recursos de procesamiento disponibles para la base de datos.
Utiliza el aprendizaje automático para aprender a evaluar el rendimiento en diversas cargas de trabajo. [2] [3] [4]
El mantenimiento de la base de datos incluye copias de seguridad , actualizaciones de estadísticas de columnas y desfragmentación de datos dentro de los archivos de la base de datos. [5]
En una base de datos muy utilizada, el registro de transacciones crece rápidamente. Las entradas del registro de transacciones deben eliminarse del registro para dejar espacio para futuras entradas. Las copias de seguridad frecuentes del registro de transacciones son más pequeñas, por lo que interrumpen la actividad de la base de datos durante períodos de tiempo más cortos.
Los DBMS utilizan histogramas estadísticos para buscar datos en un rango en una tabla o índice. Las actualizaciones de estadísticas deben programarse con frecuencia y tomar muestras de la mayor cantidad posible de datos subyacentes. Las estadísticas precisas y actualizadas permiten que los motores de consulta tomen buenas decisiones sobre los planes de ejecución, así como también localicen datos de manera eficiente.
La desfragmentación de datos de tablas e índices aumenta la eficiencia en el acceso a los datos. La cantidad de fragmentación depende de la naturaleza de los datos, de cómo se modifican con el tiempo y de la cantidad de espacio libre en las páginas de la base de datos para aceptar inserciones de datos sin crear páginas adicionales.