On Dec 1, 2007 12:46 AM, Campbell, Lance <lance@uiuc.edu> wrote:
Could you please add to your to do list a schema parameter for vacuum?
Example:
VACUUM SCHEMA xyz;
PostgreSQL would get a list of all of the tables found in the schema. It would then loop through vacuuming each table in the schema.
I found today that I did not have max_fsm_pages set high enough in order to vacuum the entire database. I vacuum daily to avoid problems. After realizing that I cannot vacuum the entire database now, I then had to do it at the table level. I had to go through all 13 of my schemas and list each table I found into an SQL vacuum script. This was a real waist of time. I will eventually restart PostgreSQL with an increased value for max_fsm_pages so this will not be an issue.
But until then I will have to run a new script. I created a script with 420 SQL vacuum statements at the table level. I would have preferred to create 13 vacuum SQL statements at the schema level.
i generally use an sql to generate vaccum statement for all tables in a schema and then simple copy paste the output in an sql file and then just run it. something like following
postgres=# select 'vacuum ' || relname || ';' from pg_class c , pg_namespace n where c.relnamespace = n.oid and n.nspname='public' and relkind='r';