Re: Vacuum

From: Hellmuth Vargas <hivs77(at)gmail(dot)com>
To: Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar>
Cc: Diego <diegodaf(at)gmail(dot)com>, Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Vacuum
Date: 2017-06-05 13:18:16
Message-ID: CAN3Qy4rGuDhSsrS5Mdy6kb5A2bQw+RoQuhyEgBMq2y6m_s_YDA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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<gherzig(at)fmed(dot)uba(dot)ar> escribió:

>
>
> ----- Mensaje original -----
> > De: "Diego" <diegodaf(at)gmail(dot)com>
> > Para: pgsql-es-ayuda(at)postgresql(dot)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(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

--
Cordialmente,

Ing. Hellmuth I. Vargas S.

In response to

  • Re: Vacuum at 2017-06-05 12:39:56 from Gerardo Herzig

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Diego 2017-06-05 17:41:42 Re: Vacuum
Previous Message Gerardo Herzig 2017-06-05 12:39:56 Re: Vacuum