Re: Automatic free space map filling
Hannu Krosing <hannu@skype.net>
From: Hannu Krosing <hannu@skype.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, Csaba Nagy <nagy@ecircle-ag.com>, "Matthew T. O'Connor" <matthew@zeut.net>, Bruce Momjian <pgman@candle.pha.pa.us>, Christopher Browne <cbbrowne@acm.org>, postgres hackers <pgsql-hackers@postgresql.org>
Date: 2006-05-03T11:34:08Z
Lists: pgsql-hackers
Ühel kenal päeval, R, 2006-03-03 kell 11:37, kirjutas Tom Lane: > Alvaro Herrera <alvherre@commandprompt.com> writes: > > So for you it would certainly help a lot to be able to vacuum the first > > X pages of the big table, stop, release locks, create new transaction, > > continue with the next X pages, lather, rinse, repeat. > > > This is perfectly doable, it only needs enough motivation from a > > knowledgeable person. > > Bruce and I were discussing this the other day; it'd be pretty easy to > make plain VACUUM start a fresh transaction immediately after it > finishes a scan heap/clean indexes/clean heap cycle. Do you mean the full (scan heap/clean indexes/clean heap) cycle or some smaller cycles inside each step ? If you mean the full cycle, then it is probably not worth it, as even a single 'clean index' pass can take hours on larger tables. > The infrastructure > for this (in particular, session-level locks that won't be lost by > closing the xact) is all there. You'd have to figure out how often to > start a new xact ... every cycle is probably too often, at least for > smaller maintenance_work_mem settings ... but it'd not be hard or > involve any strange changes in system semantics. ----------- Hannu