Re: Partition pruning for Star Schema

From: Mark Kirkwood <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz>
To: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, legrand legrand <legrand_legrand(at)hotmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Partition pruning for Star Schema
Date: 2017-12-04 04:20:43
Message-ID: 3b3128a7-2fd8-47ab-19b0-e5a8b9008d62@catalyst.net.nz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 04/12/17 16:08, Ashutosh Bapat wrote:

> On Sun, Dec 3, 2017 at 5:56 AM, legrand legrand
> <legrand_legrand(at)hotmail(dot)com> wrote:
>> Hello,
>>
>> I have a typical star schema, having dimension tables "product", "calendar"
>> and "country" and a fact table "sales".
>> This fact table is partitionned by time (range by month) and country (list).
>>
>> Will query like:
>>
>> select product.name, calendar.month, sum(sales.net_price)
>> from sales
>> inner join product on (product.id = sales.cust_id)
>> inner join country on (country.id = sales.country_id)
>> inner join calendar on (calendar.id = sales.calendar_id)
>> where
>> country.name = 'HERE'
>> and calendar.year = '2017'
>> group by product.name,calendar.month
>>
>> be able to identify needed partitions ?
>>
> AFAIU partition pruning, it works only with the partition key columns.
> So, if country.name and calendar.year are the partition keys partition
> pruning would identify the needed partitions from those tables. But
> planner doesn't know that calendar.year is somehow related to
> calendar.id and then transfer that knowledge so that partitions of
> sales can be identified.
>

If you can get your code to perform a star transformation on this type
of query, then you might see some partition pruning.

Cheers

Mark

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Claudio Freire 2017-12-04 05:38:21 Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem
Previous Message Amit Kapila 2017-12-04 03:30:06 Re: [HACKERS] [POC] Faster processing at Gather node