Hi all,
I have 2 tables:
table1 (field1,field2,.....)
table2 (field1,field2,field3,.....)
field1 is an uuid type
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?
I tried to tune Planner Cost Constants as
default_statistics_target (integer)
and / or
from_collapse_limit (integer)
join_collapse_limit (integer)
but the query plan has been the same.
Can anyone help me ?
Thanks,
Enrico
--
That's one small step for man; one giant leap for mankind
Enrico Pirozzi
Tel. +39 0861 1855771 - Mob.+39 328 4164437 - Fax +39 0861 1850310
http://www.pgtraining.com <http://www.pgtraining.com-> -
info@xxxxxxxxxxxxxx
www.enricopirozzi.info - info@xxxxxxxxxxxxxxxxxx
Skype sscotty71 - Gtalk sscotty71@xxxxxxxxx
I have 2 tables:
table1 (field1,field2,.....)
table2 (field1,field2,field3,.....)
field1 is an uuid type
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?
I tried to tune Planner Cost Constants as
default_statistics_target (integer)
and / or
from_collapse_limit (integer)
join_collapse_limit (integer)
but the query plan has been the same.
Can anyone help me ?
Thanks,
Enrico
--
That's one small step for man; one giant leap for mankind
Enrico Pirozzi
Tel. +39 0861 1855771 - Mob.+39 328 4164437 - Fax +39 0861 1850310
http://www.pgtraining.com <http://www.pgtraining.com-> -
info@xxxxxxxxxxxxxx
www.enricopirozzi.info - info@xxxxxxxxxxxxxxxxxx
Skype sscotty71 - Gtalk sscotty71@xxxxxxxxx