Hi, Please don't cross post to multiple lists. On Thu, Nov 15, 2018 at 08:53:14PM +0200, Mariel Cherkassky wrote: > Can someone explain the logic behind it ? I know that vacuum full isnt > something recommended but I found out that whenever I run vacuum full on my > database checkpoint occurs during that time every second ! well I know that > VACUUM FULL duplicates the data into new data files and then it deletes the > old data files. The writing the vacuum does, is it with the checkpoint > process ? It's a good question. What version postgres are you using, and what is the setting of wal_level ? On Thu, Nov 15, 2018 at 11:28:40PM +0300, Sergei Kornilov wrote: > Row location is data. For example, index lookup relies on TID (tuple id, hidden ctid column) - physical row address in datafile. But, since VAC FULL has an exclusive lock, and since it's atomic (it's either going to succeed and use the new table or interrupted or otherwise fail and continue using the old table data), I it doesn't need to write to WAL, except if needed for physical replication. Same as CREATE TABLE AS and similar. In my test, setting wal_level=minimal seemed to avoid WAL writes from vac full. https://www.postgresql.org/docs/current/populate.html#POPULATE-PITR Justin