Will an outer join on two indexed fields use the indexes? - Mailing list pgsql-admin

From Nick Fankhauser
Subject Will an outer join on two indexed fields use the indexes?
Date
Msg-id NEBBLAAHGLEEPCGOBHDGOEKCELAA.nickf@ontko.com
Whole thread Raw
Responses Re: Will an outer join on two indexed fields use the indexes?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-admin
Hi-

I've got another "plan" question- I'm trying to tune a query that uses an
outer join on two indexed (not unique) fields. I did an explain on it & was
surprised to find that the index wasn't used:

monroe=# explain select * from
monroe-#        (charge left outer join criminal_disposition on
monroe(#          (charge.charge_id = criminal_disposition.charge_id));
NOTICE:  QUERY PLAN:

Hash Join  (cost=260.68..21110.40 rows=147101 width=360)
  ->  Seq Scan on charge  (cost=0.00..4883.01 rows=147101 width=252)
  ->  Hash  (cost=150.94..150.94 rows=5894 width=108)
        ->  Seq Scan on criminal_disposition  (cost=0.00..150.94 rows=5894
width=108)

My question is- Does the fact that this is an outer join cause this, or is
soem other factor involved? If it is the outer join, is there a different
way to join these which will be more efficient?

Thanks!

-Nick

--------------------------------------------------------------------------
Nick Fankhauser  nickf@ontko.com  Phone 1.765.935.4283  Fax 1.765.962.9788
Ray Ontko & Co.     Software Consulting Services     http://www.ontko.com/


pgsql-admin by date:

Previous
From: "Nick Fankhauser"
Date:
Subject: Re: New User - options and other "get going" questions.
Next
From: Tom Lane
Date:
Subject: Re: Will an outer join on two indexed fields use the indexes?