Re: fsm and vacuum

From: "Little, Douglas" <DOUGLAS(dot)LITTLE(at)orbitz(dot)com>
To: Guillaume Lelarge <guillaume(at)lelarge(dot)info>, "pgadmin-support(at)postgresql(dot)org" <pgadmin-support(at)postgresql(dot)org>
Subject: Re: fsm and vacuum
Date: 2010-12-03 13:40:32
Message-ID: 8585BA53443004458E0BAA6134C5A7FB47D637F7@EGEXCMB01.oww.root.lcl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Guillaume,

Given this syscat bloat, what would you recommend doing?

schemaname

tablename

reltuples

relpages

otta

tbloat

wastedpages

wastedbytes

wastedsize

pg_catalog

pg_exttable

7092

3137

49

64

3088

101187584

97 MB

pg_catalog

pg_shdepend

48674

2349

84

28

2265

74219520

71 MB

pg_catalog

pg_shdepend

48674

2349

84

28

2265

74219520

71 MB

pg_catalog

gp_distribution_policy

19810

2131

38

56.1

2093

68583424

65 MB

pg_catalog

pg_class

33044

10139

235

43.1

9904

324534272

310 MB

pg_catalog

pg_class

33044

10139

235

43.1

9904

324534272

310 MB

pg_catalog

pg_attribute

513871

98646

2135

46.2

96511

3162472448

3016 MB

Thanks

Doug

-----Original Message-----
From: Guillaume Lelarge [mailto:guillaume(at)lelarge(dot)info]
Sent: Friday, December 03, 2010 2:55 AM
To: Little, Douglas
Cc: PgAdmin Support
Subject: Re: [pgadmin-support] fsm and vacuum

Hi,

Le 03/12/2010 00:19, Little, Douglas a écrit :

> [...]

> Thanks for the response.

No problem, but keep your anwser to the list, even if it's not the good

one :)

> Still a bit confused.

> Q: The guk settings max_fsm_relations/pages are used by the db engine to set the size of the freespace map.

In memory, yes.

> Q: vacuum scans thru the file and adds free slots to the map when a table is vacuumed

Yes.

> Q: the map is used by the engine when inserting a row (new or versioned).

Yes.

> So is the only way to initialize the fsm to run vacuum?

Yes.

> We're experiencing problems using vacuum full. GP recommends ctas/truncate/reload as alternative.

> Obviously won't work for system tables.

> My thought is vacuum full isn't working because the fsm was undersized.

vacuum full first scans the whole table to find free space, and then

scans backward to move every still-in-use space at the beginning of the

table. I don't know if vacuum full puts its information in the fsm, but

I believe so. So, if the fsm is undersized, you risk to have a not fully

effective vacuum full.

Anyway, you should probably not use vacuum full, unless you have a

*really* good reason.

Remember to REINDEX after your VACUUM FULL. Meaning you should probably

use CLUSTER, which will be fully effective and quicker. But you need an

index.

> Anything in the developers docs that would help me understand how it works?

This could be of interest:

http://wiki.postgresql.org/wiki/VACUUM_FULL

--

Guillaume

http://www.postgresql.fr

http://dalibo.com

In response to

Responses

Browse pgadmin-support by date

  From Date Subject
Next Message Guillaume Lelarge 2010-12-03 14:15:51 Re: fsm and vacuum
Previous Message Guillaume Lelarge 2010-12-03 08:54:53 Re: fsm and vacuum