Re: RE: [pgsql-es-ayuda] Criterios de diseño

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: David Prieto <davidp(at)sgth(dot)es>
Cc: "'Jaime Casanova'" <systemguards(at)gmail(dot)com>, tuxsoul(at)tuxsoul(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: RE: [pgsql-es-ayuda] Criterios de diseño
Date: 2005-03-07 04:46:33
Message-ID: 20050307044633.GK10760@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Feb 18, 2005 at 10:31:50AM +0100, David Prieto wrote:

> >En postgres yo trato de no usarlo tan solo por principios: me gusta
> >mantener la historicidad y transaccionalidad de la base.

En rigor, debido a MVCC, la transaccionalidad se mantiene siempre aunque
uses DELETE; los registros van a seguir visibles en transacciones donde
sean relevantes. VACUUM solo los eliminara una vez que todas ellas
hayan concluido.

> ¿He entendido mal? ¿O según dices si no hago el VACUUM puedo aún acceder
> a los registros borrados o modificados? ¿Es eso así? Y si lo es... ¿cómo
> puedo hacer eso?

Si, pero no usando interfaz SQL. Tendrias que ponerte a programar
funciones en C usando funciones internas de Postgres. Nada para un
novato, y por lo mismo, nada que un usuario comun y corriente quiera
usar en forma regular.

> Yo tenía entendido que el VACUUM, además de liberar ese espacio
> "inútil", también genera estadísticas que luego ayudan al planificador a
> decidir qué índices usar para cada consulta. (usándolo como "vacuum
> analyze"). Si no usas el vacuum nunca... creo que no se va a liberar el
> espacio (esto no te preocupa), pero las consultas no se ejecutarán todo
> lo óptimas que deberían.

Siempre puedes dar ANALYZE sin dar VACUUM.

Otra cosa importante (muy importante!!!) es dar VACUUM a todas las
tablas al menos una vez cada mil millones de transacciones. De lo
contrario, los datos "desaparecen" y las tablas parecen vacias (y luego
la gente se queja que no puede ver nada). Hubo varios reportes hace
poco, porque la gente hace VACUUM solo de sus propias tablas, o solo de
algunas tablas -- pero se olvidan hacerlo de los catalogos del sistema.
Y entonces, ka-boom!

Conclusion: usar autovacuum.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"No single strategy is always right (Unless the boss says so)"
(Larry Wall)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-03-07 04:48:50 Re: Re: [pgsql-es-ayuda] Criterios de diseño
Previous Message Alvaro Herrera 2005-03-07 04:29:21 Re: Documentacion en castellano pl/pgsql