Really really slow query. What's a better way?

Brendan Duddridge <brendan@clickspace.com>

From: Brendan Duddridge <brendan@clickspace.com>
To: PostgreSQL Performance <pgsql-performance@postgresql.org>
Cc: Tony Copping <tony@clickspace.com>
Date: 2006-02-24T06:54:45Z
Lists: pgsql-performance
Hi,

We're executing a query that has the following plan and we're  
wondering given the size of the data set, what's a better way to  
write the query? It's been running since 2pm 2 days ago.

explain DELETE FROM cds.cds_mspecxx WHERE ProdID not in (SELECT  
stage.ProdID FROM cds_stage.cds_Catalog stage where stage.countryCode  
= 'us') and countryCode = 'us';
QUERY PLAN
------------------------------------------------------------------------ 
---------------------------
Index Scan using pk_mspecxx on cds_mspecxx  
(cost=53360.87..208989078645.48 rows=7377879 width=6)
Index Cond: ((countrycode)::text = 'us'::text)
Filter: (NOT (subplan))
SubPlan
-> Materialize (cost=53360.87..77607.54 rows=1629167 width=12)
-> Seq Scan on cds_catalog stage (cost=0.00..43776.70 rows=1629167  
width=12)
Filter: ((countrycode)::text = 'us'::text)
(7 rows)

Thanks,

____________________________________________________________________
Brendan Duddridge | CTO | 403-277-5591 x24 |  brendan@clickspace.com

ClickSpace Interactive Inc.
Suite L100, 239 - 10th Ave. SE
Calgary, AB  T2G 0V9

http://www.clickspace.com