Re: Optimizer misses big in 10.4 with BRIN index

From: Emre Hasegeli <emre(at)hasegeli(dot)com>
To: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
Cc: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, arcadiy(at)gmail(dot)com, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Optimizer misses big in 10.4 with BRIN index
Date: 2018-07-26 08:11:44
Message-ID: CAE2gYzzgQP3tMMPaR-xPCrTpC8_afGnBOO3EaD6bDEQBn3UNQA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> Isn't the 23040 just the totalpages * 10 per `return totalpages * 10;`
> in bringetbitmap()?

Yes, it is just confusing. The correct value is on one level up of
the tree. It is 204 + 4404 rows removed by index recheck = 4608, so
the estimate is not only 150x but 733x off :(.

The sequential scan plan shows 204 + 1125498 rows removed by filter =
1125702 as the actual table size. However the former plan estimates
to get 3377106 rows from the index. That is 3x of the table size.
The selectivity estimation cannot be greater than 1. If I am not
missing anything, the general statistics of this table should be
seriously outdated.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ibrar Ahmed 2018-07-26 08:23:37 Re: Log query parameters for terminated execute
Previous Message Oleksandr Shulgin 2018-07-26 07:32:47 Re: How can we submit code patches that implement our (pending) patents?