Re: Still recommending daily vacuum...
Florian G. Pflug <fgp@phlo.org>
From: "Florian G. Pflug" <fgp@phlo.org>
To: Michael Paesold <mpaesold@gmx.at>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, Gregory Stark <stark@enterprisedb.com>, "Jim C. Nasby" <decibel@decibel.org>, "Joshua D. Drake" <jd@commandprompt.com>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org
Date: 2007-07-05T13:01:06Z
Lists: pgsql-hackers
Michael Paesold wrote: > Alvaro Herrera wrote: >> So what you are proposing above amounts to setting scale factor = 0.05. >> The threshold is unimportant -- in the case of a big table it matters >> not if it's 0 or 1000, it will be almost irrelevant in calculations. In >> the case of small tables, then the table will be vacuumed in almost >> every iteration if the threshold is 0, which is fine because the table >> is small anyway. So why not let the threshold be 0 and be done with it? > > For very small tables, setting a threshold of 0 could mean a vacuum > after every single row update (or every other row). I think that is just > burning cycles. What about a threshold of 10 or 50, to have at least > some sanity limit? Even though the cost of vacuum of a small table is > low, it is still not free, IMHO, no? A bit off-topic (because probably not realistic in a 8.3 timeframe) - but maybe the threshold should be specified in terms of "expected number of pages to be freed", instead specifing a bias for the number of modified rows as it is done now. Then "1" would probably be a reasonable default, because a vacuum that won't free at least one page seems to be not really worth the effort - it won't safe any future IO bandwith. Just an idea I got while following this thread... greetings, Florian Pflug