sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo aumentar el rendimiento de una Base de Datos?

Optimizar el diseño lógico

El nivel lógico trata sobre la estructura de la consulta y las propias tablas. Trate de maximizar esto primero. El objetivo es acceder a la menor cantidad de datos posible en el nivel lógico.

  • Tenga las consultas SQL más eficientes
  • Diseñe un esquema lógico que admita la necesidad de la aplicación (por ejemplo, tipo de columnas, etc.)
  • Compensación de diseño para admitir algunos casos de uso mejor que otros
  • Restricciones relacionales
  • Normalización

Optimizar el diseño físico

El nivel físico se ocupa de consideraciones no lógicas, como el tipo de índices, los parámetros de las tablas, etc. El objetivo es optimizar el IO, que siempre es el cuello de botella. Ajuste cada tabla para que se ajuste a sus necesidades. La tabla pequeña se puede cargar de forma permanente en la caché de DBMS, la tabla con una tasa de escritura baja puede tener configuraciones diferentes que la tabla con una tasa de actualización alta para ocupar menos espacio en el disco, etc. Dependiendo de las consultas, se pueden usar diferentes índices, etc. datos desnormalizados de forma transparente con vistas materializadas, etc.

  • Parámetros de las tablas (tamaño de asignación, etc.)
  • Índices (combinados, tipos, etc.)
  • Parámetros de todo el sistema (tamaño de caché, etc.)
  • Particionamiento
  • Desnormalización

Intente primero mejorar el diseño lógico, luego el diseño físico. (Sin embargo, el límite entre ambos es vago, por lo que podemos discutir sobre mi categorización).

Optimizar el mantenimiento

La base de datos debe funcionar correctamente para mantenerse lo más eficiente posible. Esto incluye algunas tareas de mantenimiento que pueden tener un impacto en el rendimiento, por ejemplo,

  • Mantenga las estadísticas actualizadas
  • Vuelva a secuenciar las tablas críticas periódicamente
  • Mantenimiento del disco
  • Todas las cosas del sistema para tener un servidor genial