Re: Question about Expected rows value in EXPLAIN output for NestedLoop node - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Question about Expected rows value in EXPLAIN output for NestedLoop node
Date
Msg-id fa67e151-fa09-0861-1205-30296400899b@aklaver.com
Whole thread Raw
In response to Re: Question about Expected rows value in EXPLAIN output for Nested Loop node  (bb ddd <nnickoloff1234@abv.bg>)
List pgsql-general
On 5/11/19 2:33 AM, bb ddd wrote:
> 
> Thanks, Adrian, but i was looking for something that goes into more depth.
> For example there is one case described there where we have a Nested Loop with rows=33, and its 2 child nodes have
eachrows=10.
 
> But first of all this is a very exotic join condition (t1.hundred < t2.hundred) and second of all i cannot find any
explanationhow this number 33 is derived. They literally spend less than 2 sentences on this case.
 
> 
> In my case i as well have Nested Loop's rows value different than the product of its 2 children's rows values, but
witha normal join condition on a foreign key.
 
> My guesses (again) are the same way it keeps some statistics (very curious what exactly) about what is the
probability2 random rows from each table satisfy that condition 
 

https://www.postgresql.org/docs/11/planner-stats-details.html

(t1.hundred < t2.hundred), it also keeps statistics what is the 
probability 2 random rows from each table satisfy the regular normal 
join condition like the one i have in my case (basically 
t1.t2_id=t2.id). And in both cases it just applies that probability to 
the product of the rows values of the 2 child nodes, to calculate the 
expected rows value of the result of the Nested Loop. But i am just 
guessing.
> 
> 
> 
> 
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: bb ddd
Date:
Subject: Re: Question about Expected rows value in EXPLAIN output for Nested Loop node
Next
From: Adrian Klaver
Date:
Subject: Re: perl path issue