Thread: JDBC addBatch more efficient?
Just checking if the JDBC library's batch processing code is more efficient with respect to the postgresql back end or not. Does it really batch the requests and submit them once over the link, or does it just send them to the database to be processed one at a time? Thanks, David
On Sun, 20 Apr 2008, David Wall wrote: > Just checking if the JDBC library's batch processing code is more efficient > with respect to the postgresql back end or not. Does it really batch the > requests and submit them once over the link, or does it just send them to the > database to be processed one at a time? > The JDBC driver's batch processing is more efficient than regular execution because it requires fewer network roundtrips so there's less waiting. The JDBC batch is broken into an internal batch size of 256 statement and all of these are sent over to the server at once. Kris Jurka
> The JDBC driver's batch processing is more efficient than regular > execution because it requires fewer network roundtrips so there's less > waiting. The JDBC batch is broken into an internal batch size of 256 > statement and all of these are sent over to the server at once. That's great, Kris. I believe our code only does 100 updates/deletes before committing the transaction anyway, so this should work well for us. Thanks, David
Does this means that the two features are independent one from each other ? In other words, can we say that JDBC batch will limit information exchange between client and server while Postgres prepared statements will optimize their execution ? Kris Jurka ha scritto: > > > On Sun, 20 Apr 2008, David Wall wrote: > >> Just checking if the JDBC library's batch processing code is more >> efficient with respect to the postgresql back end or not. Does it >> really batch the requests and submit them once over the link, or does >> it just send them to the database to be processed one at a time? >> > > The JDBC driver's batch processing is more efficient than regular > execution because it requires fewer network roundtrips so there's less > waiting. The JDBC batch is broken into an internal batch size of 256 > statement and all of these are sent over to the server at once. > > Kris Jurka > -- ================================================== Archimede Informatica NEWS! ================================================== Realizzato il Sistema Integrato per la biglietteria della Torre di Pisa: prenotazione, vendita, pre-vendita ed emissione dei biglietti di ingresso alla Torre sia online che presso le biglietterie dislocate sulla piazza: _http://www.opapisa.it/boxoffice _Partner del Progetto Ci-Tel "Front office Telematico per il cittadino" Ente Coordinatore Comune di Pisa _http://www.comune.pisa.it/doc/e-government.htm _================================================== dott. Ivano Mario Luberti Archimede Informatica societa' cooperativa a r. l. Sede Operativa Via Gereschi 36 - 56126- Pisa tel.: +39-050- 580959 tel/fax: +39-050-9711344 e-mail: archimede@archicoop.it web: _http://www.archicoop.it _ <http://www.archicoop.it/>__ <http://www.archicoop.it/>
> Does this means that the two features are independent one from each > other ? > In other words, can we say that JDBC batch will limit information > exchange between client and server while Postgres prepared statements > will optimize their execution ? I've not used it yet, but my impression is that you can use PreparedStatements (in a loop typically), often surrounded by jdbc transaction commit so each statement doesn't run in its own transactions, do an addBatch and then submit that so all of the statements are executed by the server as a group. So in this case, yes, they should be independent of each other. David