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.

Responder a