目前我的吞吐量约为 350MB/小时,这并不是很多。瓶颈是插入 Sybase 数据库,因此我正在寻找提高吞吐量的方法。
我只能使用免费的 JDBC 驱动程序 - 其中都不支持驱动程序级批量插入(据我所知)。
目前我已将 autoCommit
设置为 false(因此是事务性的)。准备语句,添加到批处理中,然后每 2000 条记录执行批处理(我已经使用过这个数字,但它没有帮助)。然后提交事务,所有插入都已执行。
当前使用 JTDS 驱动程序。
因此,我会诉诸任何人都可以使用的技巧、提示和技巧来提高吞吐量。
其他详细信息:
- 桌面上没有触发器。
- 唯一的约束是由 3 个字段组成的公钥。 (带索引)
- 该语句的字面意思是
INSERT INTO table([col],[col1],[col2],[col3]) VALUES (?,?,?,?)
最佳答案
我还遇到了性能问题。 我发现使用 JDBC 的多个查询会导致应用程序和数据库服务器产生大量网络开销。它还会因网络往返而导致延迟。
请考虑以下。它可能会有所帮助:
关于java - 提高批量插入的 JDBC 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17944744/