On Sat, Jun 8, 2013 at 8:06 AM, Enrico Pirozzi <sscott...@gmail.com> wrote:

> Hi all,
>
> I have 2 tables:
>
> table1 (field1,field2,.....)
> table2 (field1,field2,field3,.....)
>
> field1 is an uuid type
>

Is it a primary key?  Is there a foreign key constraint between them?


> field2 is a timestamp with time zone type.
>
> If I execute:
>
> explain (analyze on, timing off)
> select B.field3,A.field1,A.field2
> FROM table1  A INNER JOIN table2 B
> using (field1,field2)
>
> the query plan is
>
>
>                                                 QUERY
> PLAN
>
>
> ----------------------------------------------------------------------------------------------------------------
>  Hash Join  (cost=137324.20..247200.77 rows=1 width=31) (actual
> rows=1136175 loops=1)
>    Hash Cond: ((b.field1 = a.field1) AND (b.field2 = a.field2))
>    ->  Seq Scan on table2 b  (cost=0.00..49694.75 rows=1136175 width=31)
> (actual rows=1136175 loops
> =1)
>    ->  Hash  (cost=89610.68..89610.68 rows=2287368 width=24) (actual
> rows=1143684 loops=1)
>          Buckets: 65536  Batches: 4  Memory Usage: 15699kB
>          ->  Seq Scan on table1 a  (cost=0.00..89610.68 rows=2287368
> width=24) (actual rows=1143684 loops=1
> )
>  Total runtime: 5055.118 ms
> (7 rows)
>
> My question is
> Why Have I a rows=1 in the explain and rows=1136175 in the explain analyze?
>

Yes, that seems quite strange.  Did you analyze the tables (not explain
analyze, but analyze itself)?


>
> I tried to tune Planner Cost Constants as
>
> default_statistics_target (integer)
>

Did you re-analyze the tables after changing that?


and / or
>
> from_collapse_limit (integer)
> join_collapse_limit (integer)
>

I would not expect those to matter much for your query.

Cheers,

Jeff

Reply via email to