Re: Erroneous cost estimation for nested loop join

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: kawamichi(at)tkl(dot)iis(dot)u-tokyo(dot)ac(dot)jp
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Erroneous cost estimation for nested loop join
Date: 2015-11-09 10:42:06
Message-ID: CANP8+jLvenWYmYn6Kck6dQ-FgfAhMg1cbL9eZjFGeQ7L=jhT6Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 9 November 2015 at 10:08, <kawamichi(at)tkl(dot)iis(dot)u-tokyo(dot)ac(dot)jp> wrote:

>
> We guessed the cause of this error would be in the cost model of Postgres,
> and investigated the source code of optimizer, and we found the cause of
> this problem. It was in the index cost estimation process. On scanning
> inner table, if loop count is greater than 1, its I/O cost is counted as
> random access. In the case of Query2, in one loop (i.e. one inner table
> scan) , much data is read sequentially with clustered index, so it seems to
> be wrong that optimizer thinks its I/O workload is random access.
>

We don't have a clustered index in Postgres. We do store correlation stats
for the index, which is used in some places to reduce cost.

Could you look some more at this and see if a model change that uses the
correlation can improve this?

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ashutosh Bapat 2015-11-09 11:01:57 Re: Transactions involving multiple postgres foreign servers
Previous Message Gavin Flower 2015-11-09 10:37:55 Re: Erroneous cost estimation for nested loop join