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

From Radosław Smogura
Subject Re: Any way to *not* use server-side prepared statements in Postgresql?
Date
Msg-id 201107190445.20906.rsmogura@softperience.eu
Whole thread Raw
In response to Any way to *not* use server-side prepared statements in Postgresql?  (Yang Zhang <yanghatespam@gmail.com>)
List pgsql-jdbc
Yang Zhang <yanghatespam@gmail.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


pgsql-jdbc by date:

Previous
From: Yang Zhang
Date:
Subject: Any way to *not* use server-side prepared statements in Postgresql?
Next
From: Yang Zhang
Date:
Subject: Re: Any way to *not* use server-side prepared statements in Postgresql?