From: | Ron <ronljohnsonjr(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Postgres undeterministically uses a bad plan, how to convince it otherwise? |
Date: | 2023-02-16 16:15:50 |
Message-ID: | 9641fdf1-a4d1-2fad-2400-794dcf7dc5cc@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 2/16/23 09:47, cen wrote:
> Hi,
>
> I am running the same application (identical codebase) as two separate
> instances to index (save) different sets of data. Both run PostgreSQL 13.
>
> The queries are the same but the content in actual databases is different.
> One database is around 1TB and the other around 300GB.
>
>
> There is a problem with a paginated select query with a join and an order.
> Depending on which column you order by (primary or FK) the query is either
> instant or takes minutes.
>
> So on one database, ordering by primary is instant but on the other it is
> slow and vice-versa. Switching the columns around on the slow case fixes
> the issue.
>
> All relavant colums are indexed.
>
>
> Simplified:
>
> Slow: SELECT * from table1 AS t1 LEFT JOIN table2 AS t2 ON t2.t1_id=t1.id
> ORDER BY t1.id ASC LIMIT 0, 10
>
> Fast: SELECT * from table1 AS t1 LEFT JOIN table2 AS t2 ON t2.t1_id=t1.id
> ORDER BY t2.t1_id ASC LIMIT 0, 10
>
> (and the opposite, on the other instance the first one is fast and second
> one is slow).
What does EXPLAIN ANALYZE say?
> I have run all the statistic recalculations but that doesn't help. As far
> as I could read the docs, there is no real way to affect the plan
>
> other than reworking the query (I've read about fencing?) which can't be
> done because it seems to be unpredictable and depends on actual data and
> data quantity.
>
> I haven't tried reindexing.
Since you've run ANALYZE, when were the tables last vacuumed?
--
Born in Arizona, moved to Babylonia.
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2023-02-16 16:46:27 | Re: DELETE trigger, direct or indirect? |
Previous Message | Erik Wienhold | 2023-02-16 16:09:21 | Re: DELETE trigger, direct or indirect? |