RE: recuperar serials

From: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>
To: "'Gabriel Ferro'" <gabrielrferro(at)yahoo(dot)com(dot)ar>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: recuperar serials
Date: 2009-03-18 15:31:34
Message-ID: 456266D39DF846148C8F10BF79B81A88@iptel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> -----Mensaje original-----
> De: Gabriel Ferro
>
> Mi duda era si la BD perdia algun tipo de performance al
> tener tantas claves libres, el vacuum de tener esto obtendra
> peores resultados que un vacuum de una bd correcta..etc El
> caso es que por ejemplo cargue todo BsAs, luego capital y
> luego las provincias del norte, luego borro las de capital y
> despues cargo el resto de las provicnias... me quedaran
> millones de serial libres de los registros de capital sin uso...
>

Vacuum no tiene ningún efecto sobre las secuencias y viceversa.
Una secuencia no es una "bolsa" de valores, es un contador que te va
proveyendo el siguiente número disponible a demanda.
Si vos pedís n números y decidís no utilizarlos y descartarlos, no pasa
nada. El contador igual se incrementa n veces y al siguiente pedido
entregará el valor n + 1. Esto no tiene ningún impacto sobre la performance
de Postgres.

En cambio, si te referis a que borraste muchos registros de la tabla y ahora
querés compactarla para recuperar el espacio en disco es otra cosa. Si
prevees que la tabla no crecerá quizá te convenga considerar hacer un vacuum
full o mejor un cluster sobre la tabla. Tené presente que son operaciones
que te bloquean la tabla mientras ejecutan. Y en tablas grandes puede tomar
varias horas.

Cuando se borra una tupla Pg no libera el espacio que esta ocupaba. Lo marca
como eliminado. Luego, cuando vacuum analiza la tabla encuentra estos
espacios libres y los marca para ser reutilizados en futuros inserts y
updates. Es el garbage-collector de Postgres. De no correr
vacuums/autovacuum, Pg no tendría en cuenta este espacio libre para futuras
operaciones y seguiría haciendo crecer la tabla en disco. Por eso es tan
importante tener autovacuum activado.

Saludos,
Fernando.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arturo Rossodivita 2009-03-18 15:46:19 Re: crear expresion
Previous Message Alvaro Herrera 2009-03-18 15:05:58 Re: funcion nombre y borrado