Re: Any way to *not* use server-side prepared statements in Postgresql?

From: Radosław Smogura <rsmogura(at)softperience(dot)eu>
To: pgsql-jdbc(at)postgresql(dot)org
Cc: Yang Zhang <yanghatespam(at)gmail(dot)com>
Subject: Re: Any way to *not* use server-side prepared statements in Postgresql?
Date: 2011-07-19 02:45:20
Message-ID: 201107190445.20906.rsmogura@softperience.eu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Yang Zhang <yanghatespam(at)gmail(dot)com> Tuesday 19 of July 2011 04:07:05
> In (say) Python, I can issue:
>
> psycopg2.connect(...).cursor().execute("select * from account
> where id='00100000006ONCrAAO'")
>
> which on the server results in the following log entries:
>
> 2011-07-18 18:56:08 PDT LOG: duration: 6.112 ms statement:
> select * from account where id='00100000006ONCrAAO'
>
> However, in Java, issuing:
>
> conn.createStatement().executeQuery("select * from account where
> id = '00100000006ONCrAAO'");
>
> results in:
>
> 2011-07-18 18:44:59 PDT LOG: duration: 4.353 ms parse <unnamed>:
> select * from account where id = '00100000006ONCrAAO'
> 2011-07-18 18:44:59 PDT LOG: duration: 0.230 ms bind <unnamed>:
> select * from account where id = '00100000006ONCrAAO'
> 2011-07-18 18:44:59 PDT LOG: duration: 0.246 ms execute
> <unnamed>: select * from account where id = '00100000006ONCrAAO'
>
> Some searching shows that the PG JDBC driver *always* uses prepared
> statements:
> http://postgresql.1045698.n5.nabble.com/JDBC-prepared-statements-amp-serve
> r-side-prepared-statements-td1919506.html
>
> Is there any way to circumvent server prepared statements? If it makes
> a difference, I'm asking regarding PG 8.4 and 9.0. Thanks in advance.
Hi,
At the begining it's looks like your Java call is faster then python, and it's
about 1ms, so it's about 16%. Probably your call could be faster if You use
prepared statement, but...
Your call do not use prepared statements, as You even don't asked for those.
It uses extended query protocol which sends query in few "chunks", parse,
bind, execute - this is needed to allow result set fetches.

Regards,
Radosław Smogura

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Maciek Sakrejda 2011-07-19 02:47:52 Re: Any way to *not* use server-side prepared statements in Postgresql?
Previous Message Yang Zhang 2011-07-19 02:07:05 Any way to *not* use server-side prepared statements in Postgresql?