Re: unstable query plan on pg 16,17,18 - Mailing list pgsql-performance

From Attila Soki
Subject Re: unstable query plan on pg 16,17,18
Date
Msg-id 529E2365-6C3F-4BDA-9625-312F3A023C5B@gmx.net
Whole thread Raw
In response to Re: unstable query plan on pg 16,17,18  (Andrei Lepikhov <lepihov@gmail.com>)
Responses Re: unstable query plan on pg 16,17,18
List pgsql-performance
On 23 Feb 2026, at 16:54, Andrei Lepikhov <lepihov@gmail.com> wrote:

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.

Hi Andrei,

see my previous answer:

but here are the plans again:
In order to be able to publish the plans here, I have obfuscated the table and field names, but this is reversible, so I can provide more info if needed.

plan-ok:
https://explain.depesz.com/s/hQvM

plan-wrong:
https://explain.depesz.com/s/uLvl


regards,
Attila

pgsql-performance by date:

Previous
From: Andrei Lepikhov
Date:
Subject: Re: unstable query plan on pg 16,17,18
Next
From: Laurenz Albe
Date:
Subject: Re: unstable query plan on pg 16,17,18