On Thu, Oct 20, 2005 at 12:37:25AM -0400, Tom Lane wrote: > That mdb_gruppekobling_transitiv_tillukning function looks awfully > grotty ... how many rows does it return, and how long does it take to > run by itself? How often does its temp table get vacuumed? A quick > band-aid might be to use TRUNCATE instead of DELETE FROM to clean the > table ... but if I were you I'd try to rewrite the function entirely.
I've verified that it indeed does use 20ms more for every run without a VACUUM, but it shouldn't really matter -- and I guess it will go away once somebody teaches plpgsql about not caching OIDs for CREATE TEMPORARY TABLE. :-) In any case, I still can't understand why it picks the plan it does; what's up with the materialized seqscan, and where do the four million rows come from? 7.4 estimates ~52000 disk page fetches for the same query, so surely there must be a better plan than four million :-) /* Steinar */ -- Homepage: http://www.sesse.net/ ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org