Re: order of nested loop

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: order of nested loop
Дата
Msg-id 14184.1055873509@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: order of nested loop  (Joseph Shraibman <jks@selectacast.net>)
Ответы Re: order of nested loop  (Joseph Shraibman <jks@selectacast.net>)
Список pgsql-general
Joseph Shraibman <jks@selectacast.net> writes:
> The planner shows this for the scan on d:
> (cost=0.00..2380577.42 rows=525568 width=49)
> Maybe it thinks it will reach the limit of 25 before it actually does,
> which is why it is willing to try something so expensive?

Yeah, exactly, it's extrapolating that it will only actually have to
process a relatively small part of that scan.  Which would be true if
it were getting 4492 rows out of the join per estimate, and not just 1
per reality.  This is the same estimation failure as in the other plan,
I think, but it's a lot simpler to see in the other plan.

> ... Thus it would make sense to first get the entries in u,
> filter them, then filter by their status in d.

Right, but the problem is to know how many u entries will get through
the filter.  When that estimate is off by a factor of ~5000, it's no
surprise that the planner is likely to choose the wrong plan.  If you
could cut that estimation error by even a factor of 2, it would have
made the right choices here.

So we're back to my previous question: why is that estimate so far off?
You might try comparing
    explain select * from usertable where podkey = 20;
    select count(*) from usertable where podkey = 20;
to see whether the estimate is failing on the basic podkey=20 part.
If that doesn't seem too far off, add in the status = 2 and/or
(NOT banned) parts to see what confuses it.  I'd like to see the
pg_stats rows for these three columns, too.

BTW, you have done an ANALYZE recently on usertable, I hope.

            regards, tom lane

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

Предыдущее
От: Guillaume LELARGE
Дата:
Сообщение: Re: Bad link on techdocs
Следующее
От: Ron Johnson
Дата:
Сообщение: Re: postgreSQL on NAS/SAN?