Re: Planner choosing nested loop in place of Hashjoin

From: Samed YILDIRIM <samed(at)reddoc(dot)net>
To: Praneel Devisetty <devisettypraneel(at)gmail(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Planner choosing nested loop in place of Hashjoin
Date: 2023-03-11 10:31:04
Message-ID: CAAo1mb=a9P2UQ4AZaNxVsmnDpqRYOwaopXM9c1zKCz1WVyCUug@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi Praneel,

It is hard to propose a solution without seeing the actual query and
knowing details of the tables. If I were you, I would try to increase
statistics target for the columns used in joins. Default value is 100. You
need to analyze those tables again after updating the statistics targets.

ALTER TABLE table ALTER COLUMN column SET STATISTICS 300;

https://www.postgresql.org/docs/14/runtime-config-query.html#GUC-DEFAULT-STATISTICS-TARGET

Best regards.
Samed YILDIRIM

On Tue, 7 Mar 2023 at 14:14, Praneel Devisetty <devisettypraneel(at)gmail(dot)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>
>
> 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.
>
> Any suggestions on what is causing the planner to choose a nested loop in
> place of hash and how can we get the query to choose a better plan without
> disabling the enable_nestloopenable_nestloopenable_nestloop
> enable_nestloopenable_nestloop?
>
> Thanks
> Praneel
>
>
>

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Samed YILDIRIM 2023-03-11 10:37:20 Re: INSERT statement going in IPC Wait_event
Previous Message Praneel Devisetty 2023-03-07 12:14:08 Planner choosing nested loop in place of Hashjoin