Re: Slowness of extended protocol - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Slowness of extended protocol
Date
Msg-id 20160817015359.i2nk23cgidc6efvn@alap3.anarazel.de
Whole thread Raw
In response to Re: Slowness of extended protocol  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On 2016-08-16 21:40:32 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2016-07-31 17:57:12 -0400, Tom Lane wrote:
> >> Yeah.  The extended query protocol was designed to offer a lot of
> >> functionality that people had asked for, like plan re-use and
> >> introspection of the data types assigned to query parameters, but that
> >> doesn't come at zero cost.  I think the tie-in to the plan cache is a
> >> significant part of the added overhead, and so is the fact that we have to
> >> iterate the per-message loop in PostgresMain five times not once, with
> >> overheads like updating the process title incurred several times in that.
> 
> > One approach to solving this, without changing the protocol, would be to
> > "fuse" parse/bind/execute/sync together, by peeking ahead in the
> > protocol stream.
> 
> I do not think that would move the needle noticeably, because we'd still
> have to do basically all the same work, due to not knowing whether the
> statement is going to be used over again.  If we'd specified that the
> unnamed statement could be used only once, and that the unnamed portal
> had to be executed to completion on first use, there would be more room
> for optimization.  The joys of hindsight :-(

ISTM that with the current prepared statement search path behaviour
(i.e. we replan on relevant changes anyway), we can store the unnamed
statement's sql for that case.



pgsql-hackers by date:

Previous
From: 'Andres Freund'
Date:
Subject: Re: [GENERAL] C++ port of Postgres
Next
From: Michael Paquier
Date:
Subject: Re: Patch: initdb: "'" for QUOTE_PATH (non-windows)