Gracias Gerardo / Hellmuth, efectivamente, tenia una conexión en "idle
in transaction" desde hacia un me, al matarla y volver con el vacuum
manual (el full) todo volvió a la normalidad.
On 2017-06-05 10:18, Hellmuth Vargas wrote:
Hola Diego
En primer lugar, esto sucede porque
- autovacuum inactivo
- no tenga programado tareas de mantenimiento diarias con VACUUM ó
*- Exista una transacción antigua, sin resolver, que no ha permitido
la ejecución del mantenimiento respectivo.*
Ahora bien, porque la tabla presenta este tamaño si tan solo tiene
algunos registros?, PostgreSQL, implementan un mecanismo llamado MVCC,
lo que permite mantener varias "versiones" de un registro vigentes en
el espacio de una transacción en particular (para cumplir con los
postulados *ACID*-*A*tomicity, *C*onsistency, *I*solation and
*D*urability: Atomicidad, Consistencia, *Aislamiento* y Durabilidad en
español): cada vez que se actualiza una fila, en realidad la fila es
marcada como obsoleta y se inserta la nueva versión de la misma, por
lo tanto, una tabla con muchas actualizaciones podría tener un tamaño
grande con respecto a la cantidad de registros vigentes que en
realidad contiene y ahí es donde entra el VACUUM y específicamente el
autovacuum, el cual monitorea las operaciones en las tablas y realiza
el mantenimiento sobre las mismas marcando las filas obsoletas como
disponibles para contener nuevos registros (siempre y cuando no exista
una transacción pendiente que la emplee) para su reutilización
posterior o incluso (en el caso del VACUUM FULL) devuelve este
espacio al sistema operativo.
Como primer aproximación, verifique en la visita pg_stat_activity si
existen transacciones muy viejas aun sin resolver
El 5 de junio de 2017, 07:39, Gerardo Herzig<gher...@fmed.uba.ar
<mailto:gher...@fmed.uba.ar>> escribió:
----- Mensaje original -----
> De: "Diego" <diego...@gmail.com <mailto:diego...@gmail.com>>
> Para: pgsql-es-ayuda@postgresql.org
<mailto:pgsql-es-ayuda@postgresql.org>
> Enviados: Lunes, 5 de Junio 2017 8:43:18
> Asunto: [pgsql-es-ayuda] Vacuum
>
> Buenos días Postgresistas,
>
> Hoy les escribo para consultarles sobre una situación que me
pasa con
> una tabla.
> Esta tabla tiene 31 registros y 3 campos, una pk y un indice,
después de
> un tiempo me doy cuenta que ocupa 595 MBs y 577 MBs de indices.
>
> Le hice un Vacuum manual a la tabla y arrojo lo siguiente sin
reducir el
> tamaño:
>
>
Vacuum "a secas" no elimina espacio, mas bien lo reorganiza. Lo
que vos queres se logra con VACUUM FULL, o recreandola (en la
manera supongo que hiciste).
HTH,
Gerardo
-
Enviado a la lista de correo pgsql-es-ayuda
(pgsql-es-ayuda@postgresql.org <mailto:pgsql-es-ayuda@postgresql.org>)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
<http://www.postgresql.org/mailpref/pgsql-es-ayuda>
--
Cordialmente,
Ing. Hellmuth I. Vargas S.