Re: Preferring index-only-scan when the cost is equal

Поиск
Список
Период
Сортировка
От Yugo Nagata
Тема Re: Preferring index-only-scan when the cost is equal
Дата
Msg-id 20180712104436.d934c3b8.nagata@sraoss.co.jp
обсуждение исходный текст
Ответ на Re: Preferring index-only-scan when the cost is equal  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
Ответы Re: Preferring index-only-scan when the cost is equal  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
Список pgsql-hackers
On Wed, 11 Jul 2018 14:37:46 +0200
Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote:

> 
> On 07/11/2018 01:28 PM, Ashutosh Bapat wrote:

> > I don't think we should change add_path() for this. We will
> > unnecessarily check that condition even for the cases where we do not
> > create index paths. I think we should fix the caller of add_path()
> > instead to add index only path before any index paths. For that the
> > index list needs to be sorted by the possibility of using index only
> > scan.
> > 
> > But I think in your case, it might be better to first check whether
> > there is any costing error because of which index only scan's path has
> > the same cost as index scan path. Also I don't see any testcase which
> > will show why index only scan would be more efficient in your case.
> > May be provide output of EXPLAIN ANALYZE.
> > 
> 
> I suspect this only happens due to testing on empty tables. Not only is 
> testing of indexes on small tables rather pointless in general, but more 
> importantly there will be no statistics. So we fall back to some default 
> estimates, but we also don't have relallvisible etc which is crucial for 
> estimating index-only scans. I'd bet that's why the cost estimates for 
> index scans and index-only scans are the same here.

You are right. When the table have rows and this is vacuumed, index only
scan's cost is cheaper and chosen properly. Sorry, I have jumped to the
conclusion before confirming this.

Thanks,

-- 
Yugo Nagata <nagata@sraoss.co.jp>


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Craig Ringer
Дата:
Сообщение: Re: How can we submit code patches that implement our (pending) patents?
Следующее
От: Thomas Munro
Дата:
Сообщение: pread() and pwrite()