On Dec 18, 2007 2:30 PM, Deron <fecastle@xxxxxxxxx> wrote: > I see a lot of suggestions to increase maintenance work mem if running > pg_restore. This is to help with the index creation and initial sort from > what I understand. A few tests I ran does show this helps. > Does anyone know if there is a way to only "temporarily" set this setting? > I have some DBs that are bloated and I have a script to run off hours (I > don't like working late). This uses pg_dump and pg_restore to recover the > disk space. I found that this is usually faster than 'vacuum full', and is > useful in some cases. > > I know I can set this for my current session dynamically "set > maintenance_work_mem = xxxxx", but it seems that the only way I can do this > for pg_restore is to update the configuration, reload and then change it > back when the script completes and reload again. If you use psql to restore, you can just add the set maintenance_work_mem = xxx at the top of the file. Also you can do it by creating a "special" superuser and altering that user to inherit this new setting: create user bubba superuser; alter user bubba set maintenance_work_mem TO 512000; then just connect as that user to run your restores or what not. You can also set it for a non-super user, or a database as well. ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings