Prepared statements (PREPARE and JDBC) are a lot slower than "normal" ones.

From: Robert Zenz <robert(dot)zenz(at)sibvisions(dot)com>
To: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Prepared statements (PREPARE and JDBC) are a lot slower than "normal" ones.
Date: 2018-02-13 09:25:22
Message-ID: 5A82AEFF.2020603@sibvisions.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

We are seeing a quite heavy slow down when using prepared statements in 10.1.

I haven't done some thorough testing, to be honest, but what we are having is a
select from a view (complexity of it should not matter in my opinion), something
like this:

prepare TEST (text, int) select * from OUR_VIEW where COLUMNA = $1 and
COLUMNB = $2;

-- Actual test code follows.

-- Takes ~2 seconds.
select * from OUR_VIEW where COLUMNA = 'N' and COLUMNB = 35;

-- Takes ~10 seconds.
execute TEST ('N', 35);

Both return the same amount of rows, order of execution does not matter, these
times are reproducible. If the same select statement is executed through JDBC it
takes roughly 6 seconds (execution time only, no data fetched at that point).
I'm a little bit at a loss here. Is such a slow down "expected", did we simply
miss that prepared statements are slower? Or is there something else going on
that we are simply not aware of?

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Laurenz Albe 2018-02-13 09:32:20 Re: Prepared statements (PREPARE and JDBC) are a lot slower than "normal" ones.
Previous Message GALLIANO Nicolas 2018-02-13 09:15:23 RE: Barman 2.3 errors