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
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 |