Re: [pgsql-es-ayuda] Vacuum

2017-06-05 Por tema Diego
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> escribió:




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





--
Cordialmente,

Ing. Hellmuth I. Vargas S.




Re: [pgsql-es-ayuda] Vacuum

2017-06-05 Por tema Hellmuth Vargas
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 escribió:

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



-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.


Re: [pgsql-es-ayuda] Vacuum

2017-06-05 Por tema Gerardo Herzig


- Mensaje original -
> De: "Diego" 
> Para: 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)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Vacuum

2017-06-05 Por tema Diego

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:



INFO: haciendo vacuum a «intercambio.o_registros»
INFO: «o_registros»: se encontraron 0 versiones eliminables de filas y 
10500455 no eliminables en 76218 páginas

DETAIL: 10500424 versiones muertas de filas no pueden ser eliminadas aún.
CPU 21.83s/14.73u sec elapsed 62.91 sec.
INFO: analizando «intercambio.o_registros»
INFO: «o_registros»: se procesaron 3 de 76162 páginas, que contenían 
3 filas vigentes y 4135367 filas no vigentes; 3 filas en la muestra, 
6364358 total de filas estimadas


Query returned successfully with no result in 02:25 minutes.

Si bien, cree una tabla al lado pase los registros y renombre todo, me 
queda la duda... ¿por que? ¿alguna sugerencia?


Desde ya, muchísimas gracias!