Cleaning bloated pg_attribute

From: Michal Taborsky <michal(dot)taborsky(at)mall(dot)cz>
To: pgsql-performance(at)postgresql(dot)org
Subject: Cleaning bloated pg_attribute
Date: 2005-06-10 09:05:45
Message-ID: 42A957E9.8040909@mall.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

I managed, by extensive usage of temporary tables, to totally bloat
pg_attribute. It currently has about 40000 pages with just 3000 tuples.
The question is, how to restore it to it's former beauty? With ordinary
table I'd just CLUSTER it, but alas! I cannot do that with system
catalog. I always get:

db=# cluster pg_attribute_relid_attnam_index on pg_attribute;
ERROR: "pg_attribute" is a system catalog

The only thing I could think of is VACUUM FULL, but from my former
experience I guess it'll take maybe over an hour, effectively rendering
the server unusable, because of the exclusive lock. It is a live 24/7
system, so I'd really prefer something less drastic than dumping and
reloading the database (though it's still shorter downtime than with the
vacuum.)

Isn't there a way to somehow go around the above mentioned limitation
and CLUSTER the table?

Thanks for your ideas.

--
Michal Táborský
CTO, Internet Mall, a.s.

Internet Mall - obchody, které si oblíbíte
<http://www.MALL.cz>

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Richard Huxton 2005-06-10 10:07:17 Re: Cleaning bloated pg_attribute
Previous Message Tobias Brox 2005-06-10 08:49:25 Re: Help with rewriting query