I'm not using a TEMP TABLE in this DELETE however I have tried an
ANALYZE prior to the DELETE but it hardly makes a dent in the time.
Please look at the other follow-up email I just sent for full details.
From: Craig A. James [mailto:]
Sent: Monday, April 09, 2007 5:58 PM
To: Spiegelberg, Greg
Subject: Re: [PERFORM] DELETE with filter on ctid
Spiegelberg, Greg wrote:
> We have a query which generates a small set of rows (~1,000) which are
> to be used in a DELETE on the same table. The problem we have is that
> we need to join on 5 different columns and it takes far too long.
You may have encountered the same problem I did: You *must* run ANALYZE
on a temporary table before you use in another query. It's surprising
that this is true even for very small tables (a few hundred to a few
thousand rows), but it is. I had a case where I created a "scratch"
table like yours, and the before/after ANALYZE performance was the
difference between 30 seconds and a few milliseconds for the same query.