Re: BUG #6668: hashjoin cost problem - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #6668: hashjoin cost problem
Date
Msg-id 28259.1338440604@sss.pgh.pa.us
Whole thread Raw
In response to BUG #6668: hashjoin cost problem  (postgresuser@yahoo.com)
Responses Re: BUG #6668: hashjoin cost problem  (Postgres User <postgresuser@yahoo.com>)
List pgsql-bugs
postgresuser@yahoo.com writes:
> create table small(i) as select (g/1000) * 1000 from
> generate_series(1,10000) g;
> create table large(i) as select generate_series(1,100000000);

> It doesn't matter how big the big table is... for this distribution large
> table is hashed.

I don't think that's wrong.  If it hashes the small table, there cannot
be less than 1000 entries on each populated hash chain; adding more
work_mem doesn't help.  The planner is designed to avoid hashing such
unfriendly distributions as that.  The fact that you can get a somewhat
smaller runtime by forcing hashing in the other direction suggests that
its cost factors are not quite right for your specific case --- but it's
a long way from that observation to deciding that we should change the
cost factors for everyone.  In any case, the sizes of the tables are not
the only determinant of which one should be hashed.

            regards, tom lane

pgsql-bugs by date:

Previous
From: postgresuser@yahoo.com
Date:
Subject: BUG #6668: hashjoin cost problem
Next
From: Peter Eisentraut
Date:
Subject: Re: overwriting an existing .so while being used crashes the server process