| 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: | Whole Thread | Raw Message | 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?
| 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 |
| 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 |