Re: unstable query plan on pg 16,17,18
Andrei Lepikhov <lepihov@gmail.com>
From: Andrei Lepikhov <lepihov@gmail.com>
To: Laurenz Albe <laurenz.albe@cybertec.at>, Attila Soki <atiware@gmx.net>,
pgsql-performance@postgresql.org
Date: 2026-02-23T15:54:11Z
Lists: pgsql-performance
On 23/2/26 10:41, Laurenz Albe wrote: > On Mon, 2026-02-23 at 10:37 +0100, Attila Soki wrote: >> When upgrading from PostgreSQL 14.4, I noticed that one of my somewhat complex >> analytical queries sometimes gets an inefficient plan under PostgreSQL 16, 17, and 18. >> Under 14.4, the query runs with a stable plan and completes in 19 to 22 seconds. >> In newer versions, the plan seems to be unstable, sometimes the query completes >> in 17 to 20 seconds, sometimes it runs for 5 to 18 minutes with the inefficient plan. >> This also happens even if the data is not significantly changed. > > This is very likely owing to a bad estimate. > > Could you turn on "track_io_timing" and send us the EXPLAIN (ANALYZE, BUFFERS) output > for both the good and the bad plan? Since PG16, the optimiser changed a lot. So, there are plenty of possibilities that might happen - table statistics update, for example. So, we need at least EXPLAIN ANALYSE for 'good' and 'bad' cases to begin a discussion. -- regards, Andrei Lepikhov, pgEdge