java - 提高批量插入的 JDBC 性能

标签 java sql jdbc sybase

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

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

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

当前使用 JTDS 驱动程序。

因此,我会诉诸任何人都可以使用的技巧、提示和技巧来提高吞吐量。

其他详细信息:

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

最佳答案

我还遇到了性能问题。 我发现使用 JDBC 的多个查询会导致应用程序和数据库服务器产生大量网络开销。它还会因网络往返而导致延迟。

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

Multiple queries VS Stored Procedure

关于java - 提高批量插入的 JDBC 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17944744/

相关文章:

java - 如何解决小部件处置异常?

java - 如果一个类是最终的,我如何判断使用反射

javascript - Nashorn loadWithNewGlobal 功能细节

sql - 左外连接查询

java - JTable 不显示新插入的行/数据

java - 无法定位 JDBC 数据源

java - 优化 MySQL 读取模式

java - 两个相关的枚举映射?

sql - 排名超过切碎的 xml

sql - 无法更新时间戳列