Re: Query with high planning time at version 11.1 compared versions 10.5 and 11.0

Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>

From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Alvaro Herrera <alvherre@2ndquadrant.com>, Justin Pryzby <pryzby@telsasoft.com>, sanyo.moura@tatic.net, Jeff Janes <jeff.janes@gmail.com>, David Rowley <david.rowley@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-01-11T02:21:01Z
Lists: pgsql-hackers, pgsql-performance
(2019/01/10 21:23), Amit Langote wrote:
> On Thu, Jan 10, 2019 at 6:49 PM Ashutosh Bapat
> <ashutosh.bapat.oss@gmail.com>  wrote:
>> Though this will solve a problem for performance when partition-wise join is not possible, we still have the same problem when partition-wise join is possible. And that problem really happens because our inheritance mechanism requires expression translation from parent to child everywhere. That consumes memory, eats CPU cycles and generally downgrades performance of partition related query planning. I think a better way would be to avoid these translations and use Parent var to represent a Var of the child being dealt with. That will be a massive churn on inheritance based planner code, but it will improve planning time for queries involving thousands of partitions.
>
> Yeah, it would be nice going forward to overhaul inheritance planning
> such that parent-to-child Var translation is not needed, especially
> where no pruning can occur or many partitions remain even after
> pruning.

I agree on that point, but I think that's an improvement for a future 
release rather than a fix for the issue reported on this thread.

Best regards,
Etsuro Fujita



Commits

  1. Postpone generating tlists and EC members for inheritance dummy children.

  2. Allow direct lookups of AppendRelInfo by child relid