Обсуждение: autovacuum on updated rows

Поиск
Список
Период
Сортировка

autovacuum on updated rows

От
Stephen Byers
Дата:
I am using new postgres 8.1 and also trying out the integrated autovacuum.  I have a concern.
 
I have a table where I perform an update on a row every 10 seconds.  The table is VERY small.  Hardly any INSERTS, no DELETES, and a ton of UPDATES.
 
adbs_db=# select count(*) from volumes;
 count
-------
     7
(1 row)

 

 

I am looking at the file sizes that correspond to this table and its indeces.  They are growing -- I think I understand why -- dead rows are occuring on an UPDATE.  But what I don't understand is why autovacuum has not kicked in-- I have kept the default values on autovacuum.

 

In about 50 minutes' time, the table itself has grown 2MB, and each index has grown by about 1MB

 
Will autovacuum eventually run on this table????  What rows/columns does autovacuum look at to determine when to work on a table?  I'd like to look at those rows, too.
 
Thanks!!
Steve
 
 
adbs_db=# \d volumes
                     Table "public.volumes"
      Column      |          Type          |     Modifiers     
------------------+------------------------+--------------------
 label            | character varying(128) | not null
 imported         | boolean                | not null
 closed           | boolean                | not null
 active           | boolean                | not null
 online           | boolean                | not null
 offline          | boolean                | not null
 archiver_name    | character varying(32)  | not null
 environment_name | character varying(32)  | not null
 curr_size        | bigint                 | not null default 0
 vol_num          | integer                | not null
 start_time       | integer                |
 stop_time        | integer                |
Indexes:
    "volumes_i1" unique, btree (label)
    "volumes_i2" btree (environment_name)


Yahoo! FareChase - Search multiple travel sites in one click.

Re: autovacuum on updated rows

От
Jaime Casanova
Дата:
On 11/11/05, Stephen Byers <stephenabyers@yahoo.com> wrote:
> I am using new postgres 8.1 and also trying out the integrated autovacuum.
> I have a concern.
>
> I have a table where I perform an update on a row every 10 seconds.  The
> table is VERY small.  Hardly any INSERTS, no DELETES, and a ton of UPDATES.
>
> adbs_db=# select count(*) from volumes;
>  count
> -------
>      7
> (1 row)
>
>
>
>
>
> I am looking at the file sizes that correspond to this table and its
> indeces.  They are growing -- I think I understand why -- dead rows are
> occuring on an UPDATE.  But what I don't understand is why autovacuum has
> not kicked in-- I have kept the default values on autovacuum.
>
>

i will assume you change #autovacuum=off for on in postgresql.conf you
have to activet stats_stat_collector and stats_row_level too...

here explains what factors are used for determining vacuum needs for
tables: http://www.postgresql.org/docs/8.1/static/maintenance.html#AUTOVACUUM


>
> In about 50 minutes' time, the table itself has grown 2MB, and each index
> has grown by about 1MB
>
> Will autovacuum eventually run on this table????  What rows/columns does
> autovacuum look at to determine when to work on a table?  I'd like to look
> at those rows, too.
>
> Thanks!!
> Steve
>
>
> adbs_db=# \d volumes
>                      Table "public.volumes"
>       Column      |          Type          |     Modifiers
> ------------------+------------------------+--------------------
>  label            | character varying(128) | not null
>  imported         | boolean                | not null
>  closed           | boolean                | not null
>  active           | boolean                | not null
>  online           | boolean                | not null
>  offline          | boolean                | not null
>  archiver_name    | character varying(32)  | not null
>  environment_name | character varying(32)  | not null
>  curr_size        | bigint                 | not null default 0
>  vol_num          | integer                | not null
>  start_time       | integer                |
>  stop_time        | integer                |
> Indexes:
>     "volumes_i1" unique, btree (label)
>     "volumes_i2" btree (environment_name)
>
>

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

Re: autovacuum on updated rows

От
Tom Lane
Дата:
Stephen Byers <stephenabyers@yahoo.com> writes:
> Will autovacuum eventually run on this table????

Um ... is autovacuum actually turned on?  (It's not by default.)

Check the pg_stat_ views to see if the updates are getting counted in
the statistics for the table.

            regards, tom lane

Re: autovacuum on updated rows

От
Stephen Byers
Дата:
Sorry for noise.  It turns out that little pound sign in front bit me !!
#autovacuum = on

Tom Lane <tgl@sss.pgh.pa.us> wrote:
Stephen Byers writes:
> Will autovacuum eventually run on this table????

Um ... is autovacuum actually turned on? (It's not by default.)

Check the pg_stat_ views to see if the updates are getting counted in
the statistics for the table.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq


Yahoo! FareChase - Search multiple travel sites in one click.

Re: autovacuum on updated rows

От
Alvaro Herrera
Дата:
Stephen Byers wrote:
> Sorry for noise.  It turns out that little pound sign in front bit me !!
> #autovacuum = on

So, does it work after you activate it?  Please note that there's a
threshold in the number of tuples that will need to be modified for
a vacuum operation to be launched.  For such a small table you may want
to lower the threshold a bit.  See the docs on the pg_autovacuum system
catalog, in the "internals" chapter.

--
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support