Tables:
CREATE TABLE dok ( dokumnr NUMERIC(12), CONSTRAINT dok_pkey PRIMARY KEY (dokumnr) );
CREATE TABLE rid ( dokumnr NUMERIC(12) );
CREATE INDEX rid_dokumnr_idx ON rid (dokumnr);
Query:
SELECT dokumnr FROM rid WHERE dokumnr NOT IN
(select dokumnr FROM dok);
runs VERY slowly in Postgres. It uses the following query plan:
Seq Scan on rid (cost=0.00..28698461.07 rows=32201 width=14) Filter: (NOT (subplan)) SubPlan -> Seq Scan on dok
(cost=0.00..864.29rows=10729 width=14)
In Microsoft Visual FoxPro this query runs fast. FoxPro uses indexes speed
up the query by comparing bitmaps.
Is it possible to speed up this query is Postgres ? How to force Postgres to
use indexes for this query ?
Andrus