PostgreSQL ANALIZAR
El comando `ANALYZE` de PostgreSQL recopila estadísticas sobre el contenido de las tablas de la base de datos. El planificador de consultas utiliza estas estadísticas para generar planes de ejecución eficientes para las consultas.
Utilización
El comando `ANALYZE` se utiliza para actualizar las estadísticas de la base de datos con el fin de mejorar el rendimiento de la ejecución de las consultas. Se puede ejecutar en tablas concretas, columnas concretas o en toda la base de datos.
ANALYZE [VERBOSE] [table_name [ (column_name [, ...] ) ] ];
En esta sintaxis, `ANALYZE nombre_tabla` actualiza las estadísticas de la tabla especificada, mientras que `ANALYZE` sin argumentos procesa todas las tablas de la base de datos actual. La opción `VERBOSE` proporciona una salida detallada.
Nota: El comando `ANALYZE` es ejecutado automáticamente por el demonio autovacuum, que está activado por defecto en PostgreSQL. Esto reduce la necesidad de ejecutar manualmente `ANALYZE` en circunstancias normales.
Ejemplos
1. Analizar toda la base de datos
ANALYZE;
Este comando actualiza las estadísticas de todas las tablas de la base de datos actual, garantizando que el planificador de consultas dispone de información actualizada para su optimización.
2. Analizar una tabla concreta
ANALYZE employees;
Aquí se actualizan las estadísticas de la tabla "Empleados", lo que puede conducir a una ejecución más eficaz de las consultas que afectan a esta tabla.
3. Analizar columnas específicas
ANALYZE customers (first_name, last_name);
Este ejemplo actualiza las estadísticas sólo de las columnas `nombre_primero` y `apellido_nombre` de la tabla `clientes`, lo que resulta útil si las consultas suelen filtrar u ordenar por estas columnas.
Consejos y buenas prácticas
- Mantenimiento periódico. Ejecuta `ANALYZE` con regularidad, especialmente después de cambios significativos en los datos, para mantener un rendimiento óptimo de la consulta. Sin embargo, si el autovacío está activado, la ejecución manual puede ser redundante.
- Utilízalo con `VACÍO`. Combina `ANALYZE` con `VACUUM` para recuperar espacio de almacenamiento y actualizar las estadísticas en una sola operación de mantenimiento.
- Automatiza con Autovacío. Activa el demonio autovacuum para que realice automáticamente tareas de `ANALIZADO` en las tablas, reduciendo la necesidad de intervención manual.
- Dirígete a las Zonas de Alto Impacto. Céntrate en las tablas y columnas que se consultan con frecuencia o que han sufrido modificaciones sustanciales para mejorar su rendimiento.
- Monitoriza las estadísticas. Utiliza la vista `pg_stats` para consultar las estadísticas actuales de una tabla o columna, lo que te permitirá conocer los datos que utiliza el planificador de consultas.
Nota de rendimiento: Ejecutar `ANALYZE` puede aumentar la carga de E/S, lo que podría afectar al rendimiento temporalmente durante la ejecución, especialmente en tablas grandes. Planifica la ejecución fuera de las horas punta, si es necesario.