RENDIMIENTO DE UNA BASE DE DATOS
Técnicas de estimación para medir el rendimiento de la base de datos
Cuando diseña e implementa una base de datos, debe identificar las tablas de gran tamaño y los procesos más complejos que realizará la base de datos. También debe prestar una atención especial al rendimiento cuando diseña estas tablas. Además, debe considerar los efectos que puede tener en el rendimiento el aumento del número de usuarios con acceso a la base de datos.
Los siguientes cambios de diseño, entre otros, pueden mejorar el rendimiento:
·
Si una tabla que contiene cientos de miles de
filas debe resumirse en un informe diario, puede agregar a la tabla una o
varias columnas que contengan datos previamente agregados para utilizarlos sólo
en dicho informe.
·
Las bases de datos pueden normalizarse en
exceso. Esto significa que la base de datos se define con un gran número de
tablas pequeñas interrelacionadas. Cuando la base de datos procesa los datos de
estas tablas, debe realizar muchas más operaciones para combinar los datos
relacionados. Este procesamiento adicional puede repercutir negativamente en el
rendimiento de la base de datos. En esos casos, una reducción de la
normalización de la base de datos para simplificar procesos complejos puede
mejorar el rendimiento.
Este planeamiento o diseño debería tener en cuenta lo siguiente:
·
El tipo de disco que se va a utilizar, por
ejemplo, los dispositivos RAID (matriz redundante de discos independientes).
Para obtener más información, vea Acerca de las soluciones basadas en hardware.
·
Cómo se van a colocar los datos en los discos.
Para obtener más información, vea Usar archivos y grupos de archivos.
·
El diseño de índices que se va a utilizar con el
fin de mejorar el rendimiento de las consultas para tener acceso a los datos.
Para obtener más información, vea Diseñar índices.
·
Cómo se van a establecer correctamente todos los
parámetros de configuración para que la base de datos obtenga un buen
rendimiento. Para obtener más información, vea Optimizar el rendimiento del
servidor.
existen
diferentes técnicas que se pueden usar aisladas ó en conjunto que ayudan en
muchos casos a mejorar el rendimiento. Aqui teneis una pequeña lista con
algunos consejos generales que suelen ayudar en muchas ocasiones cuando se
necesita mejorar el rendimiento. En esta lista no tendremos en cuanta las
mejorias que se pueden obtener con el uso adecuado de SQL y normalización de
los datos.
- Ejecutar VACUUM ANALYZE tan a menudo como sea necesario, Bien
manualmente ó ajustanto autovacuum si es necesario
- Un sistema de discos de alto rendimiento suele ser más importante
que la cantidad de memoria disponible y esta a su vez más importante que
la CPU utilizada.
- Un servidor de bases de datos nunca tendra suficiente memoria.
Cuanta más memoria, mejor.
- Cuanto más discos disponibles en RAID, mejor. Usar Tablespaces para
organizar los datos.
- RAID 1+0 / 0+1 suele funcionar mejor que RAID 5.
- Saparar el registro de transacciones (ficheros WAL) del resto de
datos, usar diferentes discos.
- Aumentar el valor de checkpoint_segments en sistemas con una alta
concurrencia de actualizaciones de los datos (insert,update,delete)
- Discos SCSI y SAS som preferibles en servidores con un alto nivel
de utilización
- Múltiples CPUs ayudan a ejecutar/realizar trabajos paralelos en
nuestras bases de datos.
- Ejecutar CLUSTER cuando sea viable en tablas con una alto nivel de
actualización de datos.
- Utilizar un servidor dedicado siempre que sea posible. Será más
facil de configurar y ajustar para mejorar nuestro rendimiento.
- Al inicializar/poblar una nueva base de datos con una gran cantidad
de datos:
- Usar COPY en vez de INSERT
- Remover los indices durante la restauración de los datos.
- Aumentar el valor de maintenance_work_mem
- Aumentar el valor de checkpoint_segments
- fsync=false !! No olvidar cambiar
este valor a TRUE cuando termineis de restaurar los datos !!
- No olvidar ejecutar ANALYZE al termino de la restauración de los
datos
Bueno, y hasta
aqui los consejos generales, más adelante iremos profundizando en aspectos
concretos que pueden afectar al rendimiento.
Los índices se utilizan para buscar las filas con valores de
columna específicos rápidamente. Sin un índice, MySQL debe comenzar con el
primer disco y luego leer a través de toda la tabla para buscar las filas
correspondientes. Cuanto mayor sea la tabla, más esto cuesta. Si la tabla
tiene un índice para las columnas en cuestión, MySQL puede determinar
rápidamente la posición de buscar en el medio del archivo de datos sin tener
que mirar a todos los datos. Si una tabla tiene 1000 filas, entonces este es al menos 100 veces
más rápido que la lectura secuencial. Tenga en cuenta que si usted necesita
para acceder a la mayoría de las filas, es más rápido para leer de forma
secuencial, ya que esto minimiza el disco busca.
http://www.postgresql.org.es/node/223http://msdn.microsoft.com/es-es/library/ms190619(v=sql.105).aspx
TIEMPO DE CONSULTA
No hay comentarios:
Publicar un comentario