i have tested this, and you'r right. Packaging my requests into chunks of 1000 each, i can execute 10000 inserts within 2 seconds. This is exactly the performance of PGAdmin Tool and 5 times faster then performing an execute per each object. By the way, when i was talking about explain i was thinking of explain analyse and this statement produces a total runtime in milliseconds. So the execution time of 0,2 ms per insert is close to the cost estimate of explain (analyse).
Re: [JDBC] Performance of jdbc insert statements and select nextval
On Fri, 20 Feb 2009, ralf.baumhof@bgs-ag.de wrote:
> [insert with pgadmin is faster than JDBC]
As I explained previously I believe pgadmin is sending all of your inserts in one network roundtrip rather than a single insert at a time. So for example:
StringBuffer sql = new StringBuffer(); for (int i=0; i<100; i++) { sql.append("INSERT INTO mytable (a) VALUES ("); sql.append(i).append(")"); } Statement.execute(sql.toString())
will be faster than
for (int i=0; i<100; i++) { String sql = "INSERT INTO mytable (a) VALUES (" + i + ")"; Statement.execute(sql); }
because the second sample has to make 100 network trips instead of just one.
> I made a test with "logical" insert of objects which results in 50000 > inserts can be done within 2 minutes, what means 416 inserts per second, > or 1 insert in 2/1000 sec (2ms). The cost estimate with explain for an > insert is on the other hand is 0,4 ms.
Explain cost estimates do not have units of milliseconds, so the comparison is invalid.