Re: [PERFORM] DELETE taking too much memory

From: Claudio Freire <klaussfreire(at)gmail(dot)com>
To: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
Cc: Vincent de Phily <vincent(dot)dephily(at)mobile-devices(dot)fr>, Guillaume Lelarge <guillaume(at)lelarge(dot)info>, pgsql-general(at)postgresql(dot)org, pgsql-performance(at)postgresql(dot)org
Subject: Re: [PERFORM] DELETE taking too much memory
Date: 2011-07-08 11:09:17
Message-ID: CAGTBQpb+2Uv9sZxYBKna6uX1SDsxj9E9CJWjP+_JfeK3s5rLCg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-performance

On Fri, Jul 8, 2011 at 12:48 PM, Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com> wrote:
> Yes, it's the same issue that affects deferrable PK and FK
> constraints, but even non-deferrable FKs use AFTER ROW triggers that
> suffer from this problem. These triggers don't show up in a "\d" from
> psql, but they are there (try select * from pg_trigger where
> tgconstrrelid = 't1'::regclass) and because they fire AFTER rather
> than BEFORE, queuing up large numbers of them is a problem.

I would imagine an "easy" solution would be to "compress" the queue by
inserting a single element representing all rows of row version id X.

Ie: a delete or update will need to check all the row versions it
creates with its txid, this txid could be used to represent the rows
that need checking afterwards right?

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jose Ildefonso Camargo Tolosa 2011-07-08 13:37:45 Re: [PERFORM] DELETE taking too much memory
Previous Message Dean Rasheed 2011-07-08 10:48:57 Re: DELETE taking too much memory

Browse pgsql-performance by date

  From Date Subject
Next Message Sergio Mayoral 2011-07-08 11:23:09 execution time for first INSERT
Previous Message Dean Rasheed 2011-07-08 10:48:57 Re: DELETE taking too much memory