Re: Planner choosing nested loop in place of Hashjoin

Jeff Janes <jeff.janes@gmail.com>

From: Jeff Janes <jeff.janes@gmail.com>
To: Praneel Devisetty <devisettypraneel@gmail.com>
Cc: pgsql-performance@postgresql.org
Date: 2023-03-11T22:13:59Z
Lists: pgsql-performance
On Tue, Mar 7, 2023 at 7:14 AM Praneel Devisetty <devisettypraneel@gmail.com>
wrote:

> Hi,
>
> I have a query which is taking roughly 10mins to complete and the query
> planner is choosing a nested loop.
>
> query and query plan with analyze,verbose,buffers
> qsEn | explain.depesz.com <https://explain.depesz.com/s/qsEn#html>
>
>
What version is this?  Any chance you can share this without
anonymization?  Not knowing the actual names makes it a lot harder to
understand.  In particular, what is the actual function golf_romeo()? And
five_two()?  And what is the regexp pattern that is bastardized into
'oscar_mike'::text ?


> Disabling the nested loop on session is allowing the query planner to
> choose a better plan and complete it in 2mins.Stats are up to date and
> analyze was performed a few hours ago.
>

A lot can change in a few hours, do another analyze immediately before
gathering the execution plan.  Your row estimates are dreadful, but we
can't really tell why with the info provided.

Cheers,

Jeff