Re: Controlling maximal on-disk size of a table

Поиск
Список
Период
Сортировка
От David Helgason
Тема Re: Controlling maximal on-disk size of a table
Дата
Msg-id 904FB358-388D-11D9-A449-000A9566DA8A@uti.is
обсуждение исходный текст
Ответ на Controlling maximal on-disk size of a table  ("Nils Rennebarth" <Nils.Rennebarth@web.de>)
Список pgsql-general
What you're looking for sounds like and extended (destructive) version
of what autovacuum does.

So you might try to look at the statistics tables like autovacuum does.
I don't know how it does that, but it seems that that way you'd be able
to incrementally have approximate information about what happens with
the table.

Good luck,

d.
--
David Helgason,
Business Development et al.,
Over the Edge I/S (http://otee.dk)
Direct line +45 2620 0663
Main line +45 3264 5049

On 16. nov 2004, at 13:21, Nils Rennebarth wrote:

> I have a table that is essentially a log where new entries are
> streaming in continually and from time to time I throw old entries
> away to
> keep the table from growing.
>
> I understand that in addition to issue a
>   DELETE FROM log WHERE date < xxx
> I also need to issue a
>   VACUUM log
> so that new entries will use the space of deleted entries.
>
> Now I want to reserve a certain amount of disk storage to hold the log
> table. So I first let the table (plus its index, its toast table and
> toast index)  grow until it is about to reach the maximum size. Then a
> daemon continually deletes old entries and vacuums the table so the
> on-disk usage stays more or less constant from now on, at least this
> is the idea.
>
> Of course I would like to keep as much history as possible, given the
> available space. Also the log may sometimes be quiet and sometimes
> quite busy, also the size of the text entries may vary quite a bit.
>
> Now to make a good guess about when to issue the next delete, I need
> to estimate how much of the on-disk usage is accounted for by deleted
> entries.
>
> I can of course count the number of entries, estimate the bytes needed
> for storage by averaging the length of the text column, adding the
> size of the fixed columns and compare that to the on-disk size to
> conclude how much space is still available. As for the index I assume
> it is has a fixed size per row.
>
> But these queries are expensive because the log may easily contain
> millions of entries with an on disk size in the range of a few GB, and
> must be repeated quite often to prevent sudden bursts of new entries
> from overflowing the log.
>
> Is there a better way to get at the current "free space" inside of a
> table/index?
>
>
> __________________________________________________________
> Mit WEB.DE FreePhone mit hoechster Qualitaet ab 0 Ct./Min.
> weltweit telefonieren! http://freephone.web.de/?mc=021201
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>


В списке pgsql-general по дате отправления:

Предыдущее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Lost databases
Следующее
От: "Magnus Hagander"
Дата:
Сообщение: Re: Problems importing Unicode