Out of curiosity, how hard would it be to modify the output of EXPLAIN ANALYZE when doing an insert/update to include the index update times and/or non-FK constraint checking times and/or the table row update times? Or any other numbers that might be useful in circumstances like this. I'm wondering if it's possible to shed some light on the remaining dark shadows of PG performance troubleshooting. -- Mark Lewis On Thu, 2006-12-14 at 11:19 -0500, Tom Lane wrote: > Arnaud Lesauvage <thewild@xxxxxxxxxxx> writes: > > Tom Lane a crit : > >> It seems the time must be going into this trigger function. What > >> does it do? > > > A lot of things ! Indeed, if it runs it will very badly hurt performances (table > > lookups, string manipulation, etc...) ! > > But it should only be tringered on INSERTs, and I am doing an UPDATE ! > > Doh, right, I obviously still need to ingest more caffeine this morning. > > I think the conclusion must be that there was just too much I/O to be > done to update all the rows. Have you done any tuning of shared_buffers > and so forth? I recall having seen cases where update performance went > bad as soon as the upper levels of a large index no longer fit into > shared_buffers ... > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend