Thread: vacuum & free space map
Hi, I'm not understanding why a vacuum full clears a FSM information while a normal vacuum does not. On a table with fillfactor = 50 I've got: testdb=> vacuum full respi.pull_status; VACUUM testdb=> SELECT * FROM pg_freespace( 'respi.pull_status', 0 ); pg_freespace -------------- 0 (1 row) testdb=> vacuum respi.pull_status; VACUUM testdb=> SELECT * FROM pg_freespace( 'respi.pull_status', 0 ); pg_freespace -------------- 4096 (1 row) So why is vacuum full not considering the fillfactor and clearing the FSM? Or am I misunderstanding the results from pg_freespace? This is on postgresql 11.4. Thanks, Luca
Luca Ferrari <fluca1978@gmail.com> writes: > I'm not understanding why a vacuum full clears a FSM information while > a normal vacuum does not. On a table with fillfactor = 50 I've got: VAC FULL builds a new physical table, which has no FSM to start with. Possibly, when fillfactor < 100, that's something that should be created; the decision not to bother is probably older than the fillfactor knob. regards, tom lane
On Tue, Aug 6, 2019 at 3:50 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > VAC FULL builds a new physical table, which has no FSM to start with. Thanks, that was I was suspecting. Luca