Thanks Thomas for the response, It means if I run VACUUM ANALYZE on pg_attribute or pg_class table, it is completely safe? Can you please also please confirm what is meant by "mid-level" vacuum?
Regards, Inzamam Shafiq Sr. DBA ________________________________ From: Thomas Boussekey <thomas.bousse...@gmail.com> Sent: Sunday, December 18, 2022 4:01 PM To: Inzamam Shafiq <inzamam.sha...@hotmail.com> Cc: pgsql-general@lists.postgresql.org <pgsql-general@lists.postgresql.org> Subject: Re: Autovacuum on sys tables Hello Inzamam, Le sam. 17 déc. 2022 à 08:16, Inzamam Shafiq <inzamam.sha...@hotmail.com<mailto:inzamam.sha...@hotmail.com>> a écrit : Dear Experts, Hope you are doing well. I have a question that autovacuum is running on sys tables like pg_class, pg_attribute, is it a normal thing? Further, what is dead tuples are not removed from Autovacuum, can we remove the dead tuples using FULL VACUUMM or pg_repack on sys tables? pg_repack cannot run on system tables, it will FAIL with an explicit error message explaining the limitation. Each time you perform DDL operations (CREATE, DROP, ALTER), rows are inserted/updated or deleted into the system tables : pg_class, pg_attribute ... Autovacuum operations perform "low-level" operations, it can be interesting to perform "middle-level" vacuum with VACUUM ANALYZE... that is not blocking, but will be more a resource-consuming operation than autovacuum. Performing VACUUM FULL operation will block access to these pillar tables of your database. If your application/users can handle it, go ahead! At work on this kind of operation, I set a statement_timeout, in order to properly stop the process if it is over a defined amount of time. Hope this helps, Thomas Thank you. Regards, Inzamam Shafiq Sr. DBA