Re: effect on planner of turning a subquery to a table, sql function returning table - Mailing list pgsql-general

From David Rowley
Subject Re: effect on planner of turning a subquery to a table, sql function returning table
Date
Msg-id CAApHDvrkK+e5Eb-bSSPjfhHmoqpJZ72yLE1reD0x2SNtni9J+g@mail.gmail.com
Whole thread Raw
In response to Re: effect on planner of turning a subquery to a table, sql function returning table  (Thierry Henrio <thierry.henrio@gmail.com>)
Responses Re: effect on planner of turning a subquery to a table, sql function returning table  (Thierry Henrio <thierry.henrio@gmail.com>)
List pgsql-general
On Fri, 12 Apr 2024 at 23:27, Thierry Henrio <thierry.henrio@gmail.com> wrote:
>  JIT:
>    Functions: 36
>    Options: Inlining true, Optimization true, Expressions true, Deforming true
>    Timing: Generation 1.949 ms, Inlining 28.891 ms, Optimization 207.481 ms, Emission 134.907 ms, Total 373.228 ms
>  Execution Time: 429.037 ms

It looks very much like the majority of the extra time is being spent
doing JIT compilation.  This triggers for plan A but not plan B.  You
can see from:

> GroupAggregate  (cost=401037.82..503755.82 rows=1467400 width=124) (actual time=416.851..426.534 rows=4670 loops=1)

that the top-level row estimates are off.  This makes the estimated
cost higher than it actually is.  The planner opts to have tuple
deforming and expression evaluation JIT compiled to try to speed up
the plan thinking it's worthwhile. It's not in this case.

You can switch JIT off to try without with:

SET jit=0;

You might want to consider editing postgresql.conf and raising the
jit_above_cost, jit_inline_above_cost and jit_optimize_above_cost
values to some higher value or disable JIT completely.

SELECT pg_reload_conf(); -- to reload the config file afterwards.

David



pgsql-general by date:

Previous
From: Thierry Henrio
Date:
Subject: Re: effect on planner of turning a subquery to a table, sql function returning table
Next
From: Thierry Henrio
Date:
Subject: Re: effect on planner of turning a subquery to a table, sql function returning table