From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Amit Langote <amitlangote09(at)gmail(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: generic plans and "initial" pruning |
Date: | 2022-02-11 01:29:35 |
Message-ID: | 20220211012935.m45jqlbwgodjbpi7@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2022-02-10 17:13:52 +0900, Amit Langote wrote:
> The attached patch implements this idea. Sorry for the delay in
> getting this out and thanks to Robert for the off-list discussions on
> this.
I did not follow this thread at all. And I only skimmed the patch. So I'm
probably wrong.
I'm a wary of this increasing executor overhead even in cases it won't
help. Without this patch, for simple queries, I see small allocations
noticeably in profiles. This adds a bunch more, even if
!context->stmt->usesPreExecPruning:
- makeNode(ExecPrepContext)
- makeNode(ExecPrepOutput)
- palloc0(sizeof(PlanPrepOutput *) * result->numPlanNodes)
- stmt_execprep_list = lappend(stmt_execprep_list, execprep);
- AllocSetContextCreate(CurrentMemoryContext,
"CachedPlan execprep list", ...
- ...
That's a lot of extra for something that's already a bottleneck.
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Masahiko Sawada | 2022-02-11 02:09:38 | Re: Skipping logical replication transactions on subscriber side |
Previous Message | Michael Paquier | 2022-02-11 01:24:59 | Re: Add jsonlog log_destination for JSON server logs |