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