On Sun, Aug 22, 2010 at 10:23 PM, Jann Röder <roederja@xxxxxxx> wrote: > I have two tables: > A: ItemID (PK), IsssueID (Indexed) > B: ItemID (FK), IndexNumber : PK(ItemID, IndexNumber) > > Both tables have several million columns, but B has much more than A. > > Now if I run > > SELECT A.ItemID FROM A, B WHERE A.ItemID = B.itemID AND A.issueID = > <some id> > > The query takes extremely long (several hours). I ran EXPLAIN and got: > > "Hash Join (cost=516.66..17710110.47 rows=8358225 width=16)" > " Hash Cond: ((b.itemid)::bpchar = a.itemid)" > " -> Seq Scan on b (cost=0.00..15110856.68 rows=670707968 width=16)" > " -> Hash (cost=504.12..504.12 rows=1003 width=16)" > " -> Index Scan using idx_issueid on a (cost=0.00..504.12 > rows=1003 width=16)" > " Index Cond: (issueid = 'A1983PW823'::bpchar)" Have you tried adding an index on b.indexid? -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance