Re: Postgres undeterministically uses a bad plan, how to convince it otherwise?

Поиск
Список
Период
Сортировка
От Ron
Тема Re: Postgres undeterministically uses a bad plan, how to convince it otherwise?
Дата
Msg-id 9641fdf1-a4d1-2fad-2400-794dcf7dc5cc@gmail.com
обсуждение исходный текст
Ответ на Postgres undeterministically uses a bad plan, how to convince it otherwise?  (cen <cen.is.imba@gmail.com>)
Ответы Re: Postgres undeterministically uses a bad plan, how to convince it otherwise?  (cen <cen.is.imba@gmail.com>)
Список 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.



В списке pgsql-general по дате отправления:

Предыдущее
От: Erik Wienhold
Дата:
Сообщение: Re: DELETE trigger, direct or indirect?
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: DELETE trigger, direct or indirect?