Re: batch inserts are "slow" - Mailing list pgsql-performance

From Christopher Kings-Lynne
Subject Re: batch inserts are "slow"
Date
Msg-id 427642E9.2080500@familyhealth.com.au
Whole thread Raw
In response to batch inserts are "slow"  (Tim Terlegård <tim@se.linux.org>)
List pgsql-performance
> conn.setAutoCommit(false);
> pst = conn.prepareStatement("INSERT INTO tmp (...) VALUES (?,?)");
> for (int i = 0; i < len; i++) {
>    pst.setInt(0, 2);
>    pst.setString(1, "xxx");
>    pst.addBatch();
> }
> pst.executeBatch();
> conn.commit();
>
> This snip takes 1.3 secs in postgresql. How can I lower that?

You're batching them as one transaction, and using a prepared query both
of which are good.  I guess the next step for a great performance
improvement is to use the COPY command.  However, you'd have to find out
how to access that via Java.

I have a nasty suspicion that the release JDBC driver doesn't support it
and you may have to apply a patch.

Ask on pgsql-jdbc@postgresql.org perhaps.

Chris

pgsql-performance by date:

Previous
From: Tim Terlegård
Date:
Subject: batch inserts are "slow"
Next
From: Christopher Petrilli
Date:
Subject: Re: batch inserts are "slow"