Re: table size growing out of control

From: Manfred Koizar <mkoi-pg(at)aon(dot)at>
To: Robert Treat <rtreat(at)webmd(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: table size growing out of control
Date: 2002-07-17 15:14:42
Message-ID: c20bju8326jit12d6t453ja47d308ecs9c@4ax.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 16 Jul 2002 15:45:08 -0400, Robert Treat <rtreat(at)webmd(dot)net> wrote:
>> > We run a function against the table
>> > about every 5 minutes which updates on average maybe 100 rows and adds
>> > rows at the rate of maybe 1 an hour,

Robert, are you sure about those 100 updated rows/5 minutes?

>sizes from pg_class after the drop/reload of db:
> relname | relkind | relpages | mb
>-----------------------+---------+----------+----
> health_ex_group | i | 20 | 0
> health_exception_test | r | 57 | 0

I think I saw you mention that there are 5500 rows. So you have
approx. 100 rows/page.

>sizes this morning after about 15 hours of use:
>
> relname | relkind | relpages | mb
>-----------------------+---------+----------+-----
> health_ex_group | i | 6975 | 54
> health_exception_test | r | 17053 | 133

This reflects the numbers at the time of your vacuum.

>as you can see, things have already started to grow. I decided to run a
>reindex on the table, and now it shows:
>
> relname | relkind | relpages | mb
>-----------------------+---------+----------+-----
> health_ex_group | i | 21 | 0
> health_exception_test | r | 24839 | 194
>
>which gives me a significant reduction in my index size, but seems to
>have actually increased the table size by a large margin as well. Is
>this to be considered the norm?

It did not increase the table size, it did update pg_class with
current numbers.

>i then ran vacuum analyze on the table which gives me sizes of:
>
> relname | relkind | relpages | mb
>-----------------------+---------+----------+-----
> health_ex_group | i | 686 | 5
> health_exception_test | r | 26331 | 205

So in the time between reindex and vacuum your table has grown by 1500
pages or (estimated) 150000 tuples. That's 30 times the number of
rows, or - in other words - at a rate of 20 rows/minute this growth
would be expected in 100 days.

Now I may be wrong, but ISTM there is a process (or more) running that
does a *lot* of updates. Can you tell us something about the function
that is supposed to update 100 rows every five minutes? Is anything
else doing updates you were not aware of at first sight?

Note for example, that
UPDATE table1 SET col1=col1;
doesn't look like changing anything, but it writes a new version of
every row to the database.

Servus
Manfred

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2002-07-17 15:16:21 Re: table size growing out of control
Previous Message Neil Conway 2002-07-17 14:49:58 Re: OIDs (Or: another RTFM question?)