Java 使用JDBC插入数据的最快方法
我应该对我的应用程序做一个压力测试,我需要表中的6000万条记录。我遵循的方法是,首先初始化Connection类的实例,然后通过使用该连接的PreparedStatement使用for循环插入数据,在每插入500行之后,我提交连接并重置它Java 使用JDBC插入数据的最快方法,java,sql,oracle,jdbc,Java,Sql,Oracle,Jdbc,我应该对我的应用程序做一个压力测试,我需要表中的6000万条记录。我遵循的方法是,首先初始化Connection类的实例,然后通过使用该连接的PreparedStatement使用for循环插入数据,在每插入500行之后,我提交连接并重置它 使用此功能,我可以每分钟插入大约150条记录。我只想知道是否有更优化的方法来执行,以使执行所需的时间最少使用jdbc批插入: PreparedStatement ps = conn.prepareStatement(sql); int count = 0;
使用此功能,我可以每分钟插入大约150条记录。我只想知道是否有更优化的方法来执行,以使执行所需的时间最少使用jdbc批插入:
PreparedStatement ps = conn.prepareStatement(sql);
int count = 0;
for(loop construct here) {
count++;
ps.setString(1,someString);
// ... and so forth
ps.addBatch();
if (count%500 ==0)
ps.executeBatch()
}
ps.executeBatch();
使用Oracle实用程序(而不是您的代码)调查批插入或加载数据。在循环中提交不会提高Oracle中的性能—相反。在事务结束时只提交一次。但每分钟150行是一种缓慢的方式。使用本地服务器(6列的窄表),我可以每分钟获得约100万个。您尝试过批量插入操作吗?与批量插入相比,它将插入得非常快。您好!我是否需要执行ps.clearBatch();在执行之后?