提高批量插入的JDBC性能

时间:2013-07-30 10:38:11

标签: java sql jdbc sybase

目前我的吞吐量约为350MB /小时,而且不是很多。瓶颈是插入 Sybase 数据库,因此我正在寻找提高吞吐量的方法。

我只能使用免费的JDBC驱动程序 - 其中没有一个支持驱动程序级批量插入(据我所知)。

目前我将autoCommit设置为false(因此是事务性的)。准备语句,添加到批处理,然后每2000条记录执行批处理(我已经玩了这个号码,但它没有帮助)。然后提交事务所有插入都已执行。

目前正在使用JTDS驱动程序。

因此,我正在诉诸任何人都必须增加吞吐量的任何黑客,技巧和窍门。

其他详情:

  • 桌子上没有触发器。
  • 只有约束是由3个字段组成的公钥。 (带索引)
  • 该陈述字面意思是INSERT INTO table([col],[col1],[col2],[col3]) VALUES (?,?,?,?)

2 个答案:

答案 0 :(得分:0)

我也遇到了性能问题。 我开始知道使用JDBC的多个查询会导致应用程序和数据库服务器上的大量网络开销。此外,由于网络往返,它会导致延迟。

请考虑以下内容。它可能有所帮助:

Multiple queries VS Stored Procedure

答案 1 :(得分:0)

在文件中写入记录并通过bcp实用程序插入。它会比你目前正在做的快得多。