index growth problem

From: Graham Davis <gdavis(at)refractions(dot)net>
To: pgsql-performance(at)postgresql(dot)org
Subject: index growth problem
Date: 2006-10-18 22:20:19
Message-ID: 4536A8A3.1050409@refractions.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

I have a question about index growth.

The way I understand it, dead tuples in indexes were not reclaimed by
VACUUM commands in the past. However, I've read in a few forum posts
that this was changed somewhere between 7.4 and 8.0.

I'm having an issue where my GIST indexes are growing quite large, and
running a VACUUM doesn't appear to remove the dead tuples. For example,
if I check out the size an index before running any VACUUM :

select pg_relation_size('asset_positions_position_idx');
pg_relation_size
------------------
11624448
(1 row)

The size is about 11Mb. If I run a VACUUM command in verbose, I see
this about the index:

INFO: index "asset_positions_position_idx" now contains 4373 row
versions in 68 pages
DETAIL: 0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.16 sec.

When I run the same command to find the size after the VACUUM, it hasn't
changed. However, if I drop and then recreate this index, the size
becomes much smaller (almost half the size):

drop index asset_positions_position_idx;
DROP INDEX

CREATE INDEX asset_positions_position_idx ON asset_positions USING GIST
(position GIST_GEOMETRY_OPS);
CREATE INDEX

select pg_relation_size('asset_positions_position_idx');
pg_relation_size
------------------
6225920
(1 row)

Is there something I am missing here, or is the reclaiming of dead
tuples for these indexes just not working when I run a VACUUM? Is it
suppose to work?

--
Graham Davis
Refractions Research Inc.
gdavis(at)refractions(dot)net

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Jeff Davis 2006-10-18 22:32:15 Re: Postgresql 8.1.4 - performance issues for select on
Previous Message Jim C. Nasby 2006-10-18 22:10:46 Re: Postgresql 8.1.4 - performance issues for select on