Re: Why does row estimation on nested loop make no sense to me - Mailing list pgsql-general

From Amit Langote
Subject Re: Why does row estimation on nested loop make no sense to me
Date
Msg-id CA+HiwqHM5oT_uvRkhtwGvKyhN6_perH8SWTvhz+hpT2MUAN_6Q@mail.gmail.com
Whole thread Raw
In response to Why does row estimation on nested loop make no sense to me  (Jeff Amiel <becauseimjeff@yahoo.com>)
Responses Re: Why does row estimation on nested loop make no sense to me  (Jeff Amiel <becauseimjeff@yahoo.com>)
List pgsql-general
On Sat, May 18, 2013 at 1:25 AM, Jeff Amiel <becauseimjeff@yahoo.com> wrote:
> On most nested loops that I do explain/explain analyze on, the row estimation for the nested-loop itself is a product
ofthe inner nodes of the nested loop. 
> However in this case, I am stumped!
>
> explain
> select  era.child_entity  from entity_rel era  join user_entity ue on ue.entity_id = era.parent_entity and
ue.user_id=12345
>
> Nested Loop  (cost=0.00..2903.37 rows=29107 width=4)
>   ->  Index Only Scan using entity_pk on user_entity ue  (cost=0.00..62.68 rows=2 width=4)
>         Index Cond: (user_id = 10954)
>   ->  Index Scan using rel_parent on entity_rel era  (cost=0.00..1261.85 rows=317 width=8)
>         Index Cond: (parent_entity = ue.entity_id)
>
>
> How can the estimated number of rows for the nested loop node EXCEED the product of the 2 row estimates of the tables
beingjoined? 
> Not only does it exceed it - but it is orders of magnitude greater.
>
> Am I missing something obvious here?  I an see the nested loop row estimate being LESS but certainly not more.
>

Can you also post the output of explain analyze <your-query>?


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Why does row estimation on nested loop make no sense to me
Next
From: Jeff Amiel
Date:
Subject: Re: Why does row estimation on nested loop make no sense to me