Обсуждение: 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