NOT IN clause performing badly

From: Christian Rudow <Christian(dot)Rudow(at)thinx(dot)ch>
To: PostgreSQL SQL <pgsql-sql(at)postgreSQL(dot)org>
Subject: NOT IN clause performing badly
Date: 1999-07-26 09:09:07
Message-ID: 379C25B3.A86C31F8@thinx.ch
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I have a problem with NOT IN queries
------------------------------------
Has anyone experinced the same problem, or even found a solution to it ?

-- simple NOT IN clause does not perform
-- create a table with an integer primary key and any number and type
of attributes.
-- load approx. 10'000 records and vacuum;
-- then select a subset of say 8000 id's into a seperate table.
-- now try to find out the Id's of the remaining 2000 records

-- I would use a NOT IN clause
-- but this is what happens :

drop table tempx1;

select mytable.id
into table tempx1
from mytable, othertable
where mytable.id = othertable.id
and othertable.someattribute = "Somevalue";

-- this will take only a few seconds
-- on platform : PG6.4 SusE 6.0 PII/300mhz
-- rdbms startup : su - postgres -c with parameters :
-- "/sbin/startproc -l $LOGFILE $H -B 256 -i -o -F -D$DATADIR"

-- select count(*) from tempx1 : now returns 8000 rows

select id from mytable
where id NOT IN (
select id from tempx1
);

-- this will take some 100 minutes at least !!!
-- but it does finish ! no crash or hangup.
-- NOTICE: QUERY PLAN:
-- Seq Scan on mytable (cost=958.89 size=10000 width=4)
-- SubPlan
-- -> Seq Scan on tempx1 (cost=0.00 size=0 width=4)
--
-- an index on mytbale(id) exists.

Questions
---------
Is this a known problem ?
What is causing the problem ?
Is it a problem of RDBMS parameters ?
Is there an alternative to the NOT IN clause ?

I'd appreciate any help in this matter.
ThanX
Chris
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Christian Rudow E-Mail: Christian(dot)Rudow(at)thinx(dot)ch
ThinX networked business services Stahlrain 10, CH-5200 Brugg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Jan Wieck 1999-07-26 09:28:44 Re: [SQL] ERROR: DefineQueryRewrite: rule plan string too big.
Previous Message Adriaan Joubert 1999-07-26 06:57:18 Re: [HACKERS] Re: [SQL] inserts/updates problem under stressing !