Re: DELETE with filter on ctid - Mailing list pgsql-performance

From Spiegelberg, Greg
Subject Re: DELETE with filter on ctid
Date
Msg-id 82E74D266CB9B44390D3CCE44A781ED90B6ADE@POSTOFFICE.cranel.local
Whole thread Raw
In response to Re: DELETE with filter on ctid  ("Craig A. James" <cjames@modgraph-usa.com>)
List pgsql-performance
Craig,

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.

Greg


-----Original Message-----
From: Craig A. James [mailto:cjames@modgraph-usa.com]
Sent: Monday, April 09, 2007 5:58 PM
To: Spiegelberg, Greg
Cc: pgsql-performance@postgresql.org
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.

Craig

pgsql-performance by date:

Previous
From: "Spiegelberg, Greg"
Date:
Subject: Re: DELETE with filter on ctid
Next
From: Tom Lane
Date:
Subject: Re: how to efficiently update tuple in many-to-many relationship?