Re: speeding up planning with partitions

Поиск
Список
Период
Сортировка
От Amit Langote
Тема Re: speeding up planning with partitions
Дата
Msg-id c8dcf0fd-4759-5e1c-ea67-e2d3f98e81bd@lab.ntt.co.jp
обсуждение исходный текст
Ответ на Re: speeding up planning with partitions  (Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>)
Ответы Re: speeding up planning with partitions
Re: speeding up planning with partitions
Re: speeding up planning with partitions
Список pgsql-hackers
Hi,

On 2019/03/22 11:17, Amit Langote wrote:
> However, looking into make_partitionedrel_pruneinfo(), it seems that it's
> unconditionally allocating 3 arrays that all have nparts elements:
> 
>         subplan_map = (int *) palloc0(nparts * sizeof(int));
>         subpart_map = (int *) palloc0(nparts * sizeof(int));
>         relid_map = (Oid *) palloc0(nparts * sizeof(int));
> 
> So, that part has got to cost more as the partition count grows.
> 
> This is the code for runtime pruning, which is not exercised in our tests,
> so it might seem odd that we're spending any time here at all.  I've been
> told that we have to perform at least *some* work here if only to conclude
> that runtime pruning is not needed and it seems that above allocations
> occur before making that conclusion.  Maybe, that's salvageable by
> rearranging this code a bit.  David may be in a better position to help
> with that.

I took a stab at this.  I think rearranging the code in
make_partitionedrel_pruneinfo() slightly will take care of this.

The problem is that make_partitionedrel_pruneinfo() does some work which
involves allocating arrays containing nparts elements and then looping
over the part_rels array to fill values in those arrays that will be used
by run-time pruning.  It does all that even *before* it has checked that
run-time pruning will be needed at all, which if it is not, it will simply
discard the result of the aforementioned work.

Patch 0008 of 0009 rearranges the code such that we check whether we will
need run-time pruning at all before doing any of the work that's necessary
for run-time to work.

Thanks,
Amit

Вложения

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

Предыдущее
От: Haribabu Kommi
Дата:
Сообщение: Re: Libpq support to connect to standby server as priority
Следующее
От: Andrey Borodin
Дата:
Сообщение: Re: GiST VACUUM