保存数据的时候,1200个浮点数保存速度较快,2000以上就很慢了,为什么:(
我用的数据库是InterBase,编程语言是java JDBC。就是将远程传送过来的数据导入到数据库。就出现了以上的问题。
第一次使用的代码:
for(int i=0;i<len;i++){
stmt.executeUpdate("INSERT INTO SAMPLE_TABLE(PARA_ID,POS,VOL)VALUES('"+para_id+"','"+position[i]+"','"+voltage[i]+"')");
}
其中,position[i]和voltage[i]是浮点数;stmt是一个statment实例。当len为600时,保存速度还能接受,但len为1200时,就特别慢。
后来,在别人指点下我修改了代码:
con.setAutoCommit(false);
for(int i=0;i<len;i++){ con.prepareStatement("INSERT INTO SAMPLE_TABLE(PARA_ID,POS,VOL)VALUES('"+para_id+"','"+position[i]+"','"+voltage[i]+"')");
}
con.commit();
其中,con是connection实例。此时,第一次保存1200个数据,还是蛮快的,第二次再另存数据时却很慢。但是,如果代码被重新编译后,再保存1200数据时,速度又快了。为什么?