David Schnur escribió: > On Fri, Nov 6, 2009 at 12:11 PM, Alvaro Herrera <alvherre@xxxxxxxxxxxxxxxxx> > wrote: > > > Immediately after the deletions, or is there some delay? Keep in mind > > that rows cannot be reclaimed until the oldest transaction that was open > > when they were deleted is finished. > > The VACUUM waits until after the DELETE has been committed. But when you > refer to the oldest transaction, do you mean any transaction at all? Yes. But it goes back even further: is there any other transaction running that was also running when the DELETE started? If there is, vacuum won't be able to reclaim the rows. > Currently it's guaranteed that no other transaction is running when VACUUM > starts, but we were thinking of changing that behavior. It would then be > possible for an INSERT in a separate transaction to start running ~10 > seconds before the DELETE is done, and continue running for ~10 seconds > after the VACUUM starts. > > Is that the problem you were referring to? Yes. You'd have to wait until the INSERT is finished, and run VACUUM then. > How does VACUUM behave in that situation? It sounds like it returns > without reclaiming anything? Yes. -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc. -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin