Index Usage using IN

From: Ralph Mason <ralph(dot)mason(at)telogis(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: Index Usage using IN
Date: 2006-02-01 20:12:59
Message-ID: 43E1164B.7020104@telogis.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi,

I have 2 tables both have an index on ID (both ID columns are an oid).

I want to find only only rows in one and not the other.

Select ID from TableA where ID not IN ( Select ID from Table B)

This always generates sequential scans.

Table A has about 250,000 rows. Table B has about 250,000 Rows.

We should get a Scan on Table B and a Index Lookup on Table A.

Is there any way to force this? enable_seqscan off doesn't help at all.

The Plan is

Seq Scan on tablea(cost=100000000.00..23883423070450.96 rows=119414 width=4)
Filter: (NOT (subplan))"
SubPlan ->
Seq Scan on tableb (cost=100000000.00..100004611.17 rows=242617
width=4)

Thanks
Ralph

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Tom Lane 2006-02-01 20:14:45 Re: Planner reluctant to start from subquery
Previous Message Kevin Grittner 2006-02-01 19:59:57 Re: Planner reluctant to start from subquery