From: | Dave Cramer <pg(at)fastcrypt(dot)com> |
---|---|
To: | Jeremy Whiting <jwhiting(at)redhat(dot)com> |
Cc: | "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>, magog001(at)web(dot)de |
Subject: | Re: Resurrected thread: Speed improvement - Group batch Insert - Rewrite the INSERT at the driver level (using a parameter) |
Date: | 2015-03-28 18:01:47 |
Message-ID: | CADK3HHK+aKbwOiBqsyhneaviVCiwf8sWvoysYHS8-cW9OcA28A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Hi Jeremy,
As Oliver pointed out in the response to [1] this would require parsing the
query which we avoid.
I also note that this approach isn't much of an improvement for small
batches. I am curious what is your real world use case that prompted this
experiment ?
Dave
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca
On 25 March 2015 at 15:34, Jeremy Whiting <jwhiting(at)redhat(dot)com> wrote:
> Hi,
> I see this conversation [1] occurred back in 2009. I'd like to resurrect
> the thread.
>
> In response to the questions by J. W. Ulbts I have some performances
> results demonstrating the benefit. Also a response to his suggestion for
> using COPY.
>
> "Where exactly is the performance benefit that you see coming from?"
>
> To answer this question a simple java JDBC project [2] was created to
> demonstrate the benefit. In the project are several benchmarks grouped by
> individual statements (IndividualStatementsTest) or re-written multi-insert
> (MultiInsertStatementTest). Each group has 3 different statement/row sizes
> (2/5/51) which are configurable. Named "SMALL", "MEDIUM" and "LARGE"
> respectively. The default sizes are not intended to be representative of
> any particular use case. As everyone has differing opinions of what is
> appropriate.
>
> The project is easy to set up and run. Details are in the README file.
>
>
> The attached normalized graph of ops/sec demonstrating the benefit at
> different levels of concurrency. The results are for a client machine and a
> dedicated server system. Details of the db system are: 32 core @2.90GHz,
> 283GB memory, couple of enterprise SSD for db storage. WAL and tablespace
> are on separate devices.
>
>
> "If your use case is just "I want to do bulk inserts as fast as possible"
> then perhaps the newly merged COPY suport is a better way to go."
>
> For use cases involving applications using an ORM like Hibernate COPY
> isn't supported nor likely to. Hibernate doesn't have any concept of
> handling files on the database system.
>
> What are the thoughts for having this optimization introduced into pgjdbc
> driver ?
>
> Regards,
> Jeremy
>
> [1] http://www.postgresql.org/message-id/828427796@web.de
> [2] https://github.com/whitingjr/batch-rewrite-statements-perf
>
> --
> Jeremy Whiting
> Senior Software Engineer, JBoss Performance Team
> Red Hat
>
> ------------------------------------------------------------
> Registered Address: RED HAT UK LIMITED, 64 Baker Street, 4th Floor,
> Paddington. London. United Kingdom W1U 7DF
> Registered in UK and Wales under Company Registration No. 3798903
> Directors: Michael Cunningham (US), Charles Peters (US), Matt Parson (US)
> and Michael O'Neill(Ireland)
>
>
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Jeremy Whiting | 2015-03-30 11:29:48 | Re: Resurrected thread: Speed improvement - Group batch Insert - Rewrite the INSERT at the driver level (using a parameter) |
Previous Message | Kris Jurka | 2015-03-27 14:59:02 | Re: Does PGInterval class handle iso_8601 intervalstyle? |