Re: whether I can see other alternative plantrees for one query?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: whether I can see other alternative plantrees for one query?
Дата
Msg-id 19228.1406606780@sss.pgh.pa.us
обсуждение исходный текст
Ответ на whether I can see other alternative plantrees for one query?  (土卜皿 <pengcz.nwpu@gmail.com>)
Список pgsql-hackers
土卜皿 <pengcz.nwpu@gmail.com> writes:
>   NOTE: Version is 8.4   Fedora 20 X86_64

You do realize that's five years out of date?  Not sure why you're running
an end-of-life database on a bleeding-edge OS.

>   for understanding optimizer's internals, I
> *set debug_print_plan=on*
> ...
> but from the log, I only found the final selected planTree, so I want to
> ask:
> what should I do if I want to see the other alternative planTrees?  any
> advice will be apprecitaed!

The printed plan tree is actually the only one that the planner follows to
completion; other alternatives are discarded as soon as possible to save
useless processing.

For a query as simple as you're showing here, there aren't all that many
alternatives.  You can probably explore all of them by fooling with the
planner parameters enable_seqscan etc, by repeatedly disallowing whatever
plan the planner thought was cheapest so that it will select and print
the next cheapest.

If you want to look more closely than that, you could add some code to the
add_path() subroutine so that it prints rejected paths --- but they'll
necessarily be pretty abstract and not user-friendly (or perhaps I should
say even less user-friendly than EXPLAIN usually is :-() because the
details simply aren't there.

There's lots of previous discussion in the PG archives, eg here here
and here:
http://www.postgresql.org/message-id/flat/CAN3Hncy1X9Zm4gJjGPc4ApYQe0Qs_pjZe=vw0V_J=rMa-cLF1g@mail.gmail.com
http://www.postgresql.org/message-id/flat/CANp-BfaRAAH2f9a55WqSanH4TrBeErFP_G3KaRwC-jLU-KX38A@mail.gmail.com
http://www.postgresql.org/message-id/flat/CAFcOn2-9j4fTcJ39xvdCByF6dg3U_=TGumCCp1-7SH_J9G+GtA@mail.gmail.com

I'm fairly sure that I remember seeing some more-completely-worked-out
patches for printing partial paths as they're considered, but my search fu
is failing me at the moment.
        regards, tom lane



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

Предыдущее
От: Fujii Masao
Дата:
Сообщение: Re: 9.4 documentation: duplicate paragraph in logical decoding example
Следующее
От: Kyotaro HORIGUCHI
Дата:
Сообщение: Re: whether I can see other alternative plantrees for one query?