Re: Multiple Row Insert vs. Batch

From: Robert DiFalco <robert(dot)difalco(at)gmail(dot)com>
To: jaime(dot)soler(at)gmail(dot)com
Cc: Dave Cramer <pg(at)fastcrypt(dot)com>, Vitalii Tymchyshyn <vit(at)tym(dot)im>, List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Multiple Row Insert vs. Batch
Date: 2015-06-08 16:29:18
Message-ID: CAAXGW-xpk33Gq+FKkQ0MQg2XEo5ECcD3=GZWst0qF-6LnD-Mxw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

To make it apples to apples I included the time to transform the payload.
It's maybe 1-4% faster for 250 rows with 3 fields sampled 100 times with a
JVM warm-up.

On Mon, Jun 8, 2015 at 2:27 AM, jaime soler <jaime(dot)soler(at)gmail(dot)com> wrote:

> El dom, 07-06-2015 a las 09:56 -0700, Robert DiFalco escribió:
> > Another interesting thing is that for 250 records COPY is actually the
> > slowest. But these are real world tests to that could have been the
> > time it took to transform the 250 records to CSV.
> Hi Robert,
>
> Copy using
> CopyManager(
> https://jdbc.postgresql.org/documentation/publicapi/org/postgresql/copy/CopyManager.html
> ) should be faster than multi-row inserts and batch single-row insert. Did
> you count only the copy time without transformation time ?
> >
> > On Sun, Jun 7, 2015 at 9:41 AM, Robert DiFalco
> > <robert(dot)difalco(at)gmail(dot)com> wrote:
> > I did a benchmark and multi-row insert with a single statement
> > is about 6-7% faster than batch insert. This is for 250 rows
> > executed a thousand times in a loop (alternating between the
> > two to reduce subsequent table insert index slowdown). So a
> > little faster but not significantly so.
> >
> > On Sat, Jun 6, 2015 at 12:07 PM, Robert DiFalco
> > <robert(dot)difalco(at)gmail(dot)com> wrote:
> > Yes that's correct. A multiple row insert with a
> > single insert statement. I'll try benchmarking the two
> > on Monday. My guess is that they are pretty damn
> > similar.
> >
> > Sent from my iPhone
> >
> > On Jun 6, 2015, at 10:35 AM, Dave Cramer
> > <pg(at)fastcrypt(dot)com> wrote:
> >
> >
> > > Robert ??
> > >
> > >
> > > Is that what you meant ?
> > >
> > > Dave Cramer
> > >
> > > dave.cramer(at)credativ(dot)ca
> > > http://www.credativ.ca
> > >
> > >
> > > On 6 June 2015 at 13:34, Vitalii Tymchyshyn
> > > <vit(at)tym(dot)im> wrote:
> > > I think OP meant something like
> > > Insert into table values
> > > (?,?,?),(?,?,?),...,(?,?,?);
> > > Vs batch of insert into table values(?,?,?);
> > >
> > > I really think first would be faster up to a
> > > certain amount of rows, but test is needed
> > > to check.
> > >
> > > Vitalii Tymchyshyn
> > >
> > >
> > >
> > > Сб, 6 черв. 2015 13:30 Dave Cramer
> > > <pg(at)fastcrypt(dot)com> пише:
> > >
> > > batch should be faster and if it
> > > isn't we did something wrong
> > >
> > > Dave Cramer
> > >
> > > dave.cramer(at)credativ(dot)ca
> > > http://www.credativ.ca
> > >
> > >
> > > On 6 June 2015 at 12:34, Robert
> > > DiFalco <robert(dot)difalco(at)gmail(dot)com>
> > > wrote:
> > > Say I need to insert 250
> > > rows. Is single-statement
> > > multiple row insert or JDBC
> > > batch likely to be faster?
> > >
> > >
> > > Thanks!
> > >
> > >
> > > R.
> > >
> > >
> > >
> > >
> >
> >
> >
> >
>
>
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Álvaro Hernández Tortosa 2015-06-08 17:14:43 Re: Multiple Row Insert vs. Batch
Previous Message dmp 2015-06-08 15:40:58 MyJSQLView Version 7.03 Released