On Thu, 2007-08-09 at 12:39 +0530, Pavan Deolasee wrote:

> No, pruning removes all dead tuples, irrespective of whether they are 
> HOT or COLD updated and whether they are heap-only or not. It
> handles line pointer redirection and marks
> all dead tuples as ~LP_USED. Defragging just repairs the fragmentation
> by rearranging LP_USED tuples.
>         It's easily possible that 100% of the cold updates and deletes
>         are
>         removed by defragging because of HOT updates. It would be
>         pointless to 
>         trigger a VACUUM when it might find nothing to clear up. Its
>         also
>         possible that the deletes are at one end of the table and the
>         updates at
>         the other. So we really need to keep track of the effects of
>         defragging
>         dead cold updates and deletes, so they can be subtracted from
>         the cold
>         update + deletes.

Whether I got the exact details of frugging & depruning correct or not:
if a tuple version is removed, then VACUUM doesn't need to remove it
later, so any non-VACUUM removal of rows must defer a VACUUM. 

  Simon Riggs
  EnterpriseDB  http://www.enterprisedb.com

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at


Reply via email to