Re: Removing INNER JOINs

Поиск
Список
Период
Сортировка
От Atri Sharma
Тема Re: Removing INNER JOINs
Дата
Msg-id CAOeZVidR1_JoQA_6xUvnmsZVyzwmZpEEUBwK8R01gc1GaQZg7Q@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Removing INNER JOINs  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Removing INNER JOINs
Список pgsql-hackers


On Wed, Dec 3, 2014 at 11:03 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Stephen Frost <sfrost@snowman.net> writes:
> * Tom Lane (tgl@sss.pgh.pa.us) wrote:
>> However, even granting that that is a concern, so what?  You *have* to
>> do the planning twice, or you're going to be generating a crap plan for
>> one case or the other.

> Yeah, I don't see a way around that..

Also, it occurs to me that it's only necessary to repeat the join search
part of the process, which means that in principle the mechanisms already
exist for that; see GEQO.  This means that for small join problems, the
total planning time would much less than double anyway.  For large
problems, where the join search is the bulk of the time, we could hope
that removal of unnecessary joins would reduce the join search runtime
enough that the second search would be pretty negligible next to the
first (which is not optional).  So I think "it'll double the runtime"
is an unfounded objection, or at least there's good reason to hope it's
unfounded.


Is it possible to only replan part of the plan in case of this optimization? I think that we might need to only replan parts of the original plan (as you mentioned, join search and above). So we could reuse the original plan in part and not do a lot of replanning (an obvious case is scan strategy, which we can assume will not change for the two plans).

I wonder if we could have a rule based system for replacement of some plan nodes with other type of nodes. As we discover more cases like this, we could add more rules. Wild thought though. 


--
Regards,
 
Atri
l'apprenant

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