It appears to me as if there is quite a bit of overhead with the Postgres JDBC driver when compared with other JDBC drivers. This simple piece of code shows me something very odd:
-------------------------------------------------------
ps = con.prepareStatement("SELECT 1");
long execStart = System.currentTimeMillis();
rs = ps.executeQuery();
System.err.println ("Query executed in " + (System.currentTimeMillis() - execStart) + "ms");
--------------------------------------------------------
Result of this code is:
Query executed in 57ms
But with duration logging enabled on the database side, I can see that the database side processing time was less than 1 ms.
LOG: duration: 0.073 ms statement: EXECUTE <unnamed> [PREPARE: SELECT 1]
When I run this same code against a mySQL or Sybase database, I get 1ms execution time. Am I missing some bit of tuning that I can do with the database or the JDBC driver to eliminate that 50+ms of latency?
I am running postgres 8.1.4 on solaris and I've tried all 3 JDBC drivers. The java program is running on the same server as the database so I don't believe there is any network latency involved.
Thanks!!
_____________________________________________________________________________________
Bob Damato Cox Target Media
Internet Technology Manager Largo, Florida
Our greatest glory is not in never falling, but in rising every time we fall. -- Confucius