pgstattuple forma parte de los módulos contrib de PostgreSQL, una colección de extensiones oficiales pero opcionales que permiten analizar la ocupación y el bloat de tablas a nivel de páginas y tuplas.
Paso 1 descargar el RPM desde el sitio oficial de PostgreSQL en la versión correspondiente, por ejemplo https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-8.10-x86_64/
Paso 2 instalar la extensión de contrib usando el gestor de paquetes, por ejemplo ejecutar en la máquina con PostgreSQL instalado el comando sudo yum install postgresql15-contrib para sistemas basados en Red Hat o CentOS
Paso 3 si se ha descargado el paquete RPM copiarlo al servidor y proceder con la instalación local usando sudo rpm -ivh postgresql15-contrib.rpm
Paso 4 iniciar sesión en psql con el usuario adecuado y activar la extensión ejecutando CREATE EXTENSION pgstattuple; esto debe hacerse en la base de datos en la que se quiere analizar las tablas
Paso 5 comprobar la tabla que interesa con pgstattuple; en psql ejecutar SELECT * FROM pgstattuple pasando como argumento el nombre del objeto en formato esquema.p_tabla como cadena entre comillas simples en la consola psql para obtener métricas de ocupación y bloat
Ejemplo de salida típica y sus campos clave: table_len 8192 tuple_count 5 tuple_len 463 tuple_percent 5.65 dead_tuple_count 0 dead_tuple_len 0 dead_tuple_percent 0 free_space 7656 free_percent 93.46
Descripción de los campos y su utilidad
table_len: tamaño total de la tabla en disco en bytes
tuple_count: número de tuplas activas o visibles
tuple_len: longitud total en bytes de las tuplas activas
tuple_percent: porcentaje del espacio ocupado por tuplas activas
dead_tuple_count: número de tuplas muertas que aún no han sido limpiadas por VACUUM
dead_tuple_len: longitud total en bytes de las tuplas muertas
dead_tuple_percent: porcentaje del espacio ocupado por tuplas muertas, indicador directo de bloat por filas eliminadas o actualizadas
free_space: espacio libre total dentro de las páginas asignadas en bytes, reutilizable por futuras inserciones o actualizaciones sin necesidad de extender la tabla
free_percent: porcentaje del espacio total de la tabla que está libre
Interpretación rápida y acciones recomendadas: si dead_tuple_percent es alto o free_percent es bajo considerar ejecutar VACUUM o VACUUM FULL según necesidad, o herramientas online como pg_repack para evitar downtime; revisar además autovacuum y thresholds para evitar acumulación de tuplas muertas; en casos extremos valorar REINDEX o CLUSTER si hay fragmentación de índices o requerimientos de rendimiento
Notas prácticas: mantener autovacuum configurado y supervisar tablas con alta tasa de actualización o borrado, programar análisis periódicos con pgstattuple para detectar bloat y planificar tareas de mantenimiento con mínimo impacto en producción
En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y mucho más. Ofrecemos servicios de software a medida, aplicaciones a medida, implementación y optimización de bases de datos PostgreSQL, configuración e instalación de extensiones contrib como pgstattuple, así como servicios cloud AWS y Azure, servicios inteligencia de negocio, implementaciones de Power BI, desarrollo de agentes IA y soluciones de ia para empresas. Si necesita ayuda para optimizar rendimiento, reducir bloat o integrar capacidades de inteligencia artificial y analítica en sus aplicaciones a medida, Q2BSTUDIO puede ayudarle con soluciones seguras, escalables y adaptadas a su negocio
Palabras clave para mejorar posicionamiento: aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi