Re: [HACKERS] Partition-wise aggregation/grouping
От | Robert Haas |
---|---|
Тема | Re: [HACKERS] Partition-wise aggregation/grouping |
Дата | |
Msg-id | CA+TgmoYzqxpuL0eUpHJEBBFX4HiGb=jg_7WKi=a-wfc9f626FQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Partition-wise aggregation/grouping (Antonin Houska <ah@cybertec.at>) |
Список | pgsql-hackers |
On Fri, Apr 28, 2017 at 3:03 AM, Antonin Houska <ah@cybertec.at> wrote: > I think this is not generic enough because the result of the Append plan can > be joined to another relation. As such a join can duplicate the > already-aggregated values, the aggregates should not be finalized below the > top-level plan. If the grouping key matches the partition key, then it's correct to push the entire aggregate down, and there's probably a large performance advantage from avoiding aggregating twice. If the two don't match, then pushing the aggregate down necessarily involves a "partial" and a "finalize" stage, which may or may not be cheaper than doing the aggregation all at once. If you have lots of 2-row groups with 1 row in the first branch of the append and 1 row in the second branch of the append, breaking the aggregate into two steps is probably going to be a loser. If the overall number of groups is small, it's probably going to win. But when the grouping key matches the partition key, so that two-stage aggregation isn't required, I suspect the pushdown should almost always win. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: