当前位置: 代码迷 >> J2SE >> 六万行数据存入数据库用时33s,还能更快吗解决办法
  详细解决方案

六万行数据存入数据库用时33s,还能更快吗解决办法

热度:12   发布时间:2016-04-23 20:38:29.0
六万行数据存入数据库用时33s,还能更快吗
如题,我用的是批量执行的方式,请问还有没有更有效率的方法?
ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=sample;SelectMethod=Cursor","sa","123321");
ct.setAutoCommit(false);
ps=ct.prepareStatement("insert into info1 values (?,?,?,?)");

for(int i=0;i<arr1.size();i++){
//题目的分词的hashcode值
ps.setInt(1,arr1.get(i).toString().hashCode());
//id号
ps.setInt(2,(Integer)arr2.get(i));
ps.setString(3, arr3.get(i).toString());
ps.setString(4, arr4.get(i).toString());
ps.addBatch();
}
ps.executeBatch();
ct.commit();
------解决方案--------------------
用存储过程试试
------解决方案--------------------
数据写进本地文件,用load data命令直接导入进数据库
------解决方案--------------------
个人建议把数据分成几块,比如每3000条提交一次,然后在执行后续的,这样可以减少些执行时间
------解决方案--------------------
用存储过程来实现,或用脚本
  相关解决方案