Re: Performance issue after creating partitions - Mailing list pgsql-admin

From Doug Reynolds
Subject Re: Performance issue after creating partitions
Date
Msg-id 01000182d27cd99e-5a38a3c8-7060-4969-a24b-cf879b9f5bf7-000000@email.amazonses.com
Whole thread Raw
In response to Performance issue after creating partitions  (Teja Jakkidi <teja.jakkidi05@gmail.com>)
Responses Re: Performance issue after creating partitions  (Teja Jakkidi <teja.jakkidi05@gmail.com>)
List pgsql-admin
You need to change your query to not use the trunc.  The TRUNC statement forces it to trunc every row in the table.

If you do order_date >= to_date(..) and order_date < to_date(..) + interval '1' day, it will use the partition range to
narrowdown to the correct partition first. 

Sent from my iPhone

> On Aug 24, 2022, at 6:41 PM, Teja Jakkidi <teja.jakkidi05@gmail.com> wrote:
>
> Hello Admin team,
>
> We have a Postgres 13 server set up on Google Cloud. Recently we created partitions as below for the tables:
> Range on ‘order_date’  column
>         List on ‘country_code’ column
>
> Quarterly partitions for range.
>
> Order date column is a time stamp column and when we are using this column as a filter in where condition :
trunc(order_date)= to_date(’2022-04-01’,’YYYY-MM-DD’), the query scans all the partitions dated back from the year
2000.So, instead of going to the 2022 Q2 partition directly, the query is scanning all the partitions. 
> But when we remove the trunc() function and just specify order_date =‘2022-04-01 07:02:30’, this works as expected.
Itgoes to the correct partition directly and gets the data.  
> Can Anyone help me on what’s happening in the first case and why all the partitions are being scanned?
> For the first case, when there is a non partition table, it is behaving way better.
>
> Thanks,
> J. Teja.
>




pgsql-admin by date:

Previous
From: Teja Jakkidi
Date:
Subject: Performance issue after creating partitions
Next
From: rh@vonng.com
Date:
Subject: patroni rhel7.x86_64 RPM package spec issue