如果程序向oracle表中插入百万条数据怎么办呢 如果程序向oracle表中插入百万条数据怎么办呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用 batchExecute,只要没有BLOB这种大对象字段,每秒10万条以上很轻松。 。。简单的样例就是:PreparedStatement stmt = conn.prepareStatement("INSERT INTO Users VALUES(?,?,?)");User[ ] users = ...;for(int i=0; i<users.length; i++) { stmt.setInt(1, users[i].getName()); stmt.setInt(2, users[i].getAge()); stmt.setInt(3, users[i].getShape()); stmt.addBatch();}int[ ] counts = stmt.executeBatch(); 也不复杂,参见这里:http://oss.org.cn/ossdocs/framework/hibernate/reference-v3_zh-cn/batch.html 估计服务器很强大。楼主,你若用hibernate,则可以配置batch-size,最好给范围2-10 batch-size 小了点,至少给个千级别的。关于速度,这里有人做过测试:http://blog.csdn.net/hn1232/article/details/4341111MySQL:1,000,000 条(百万)消耗 272,219毫秒(4分32秒); batch-size对性能有很大影响的。 用jdbc的api批量提交吧,通过hibernate获得session,速度很快滴Session s = commonDao.getSession();Connection conn= s.connection(); String sql = "insert into "+tablename+"(id) values(?)";PreparedStatement prest = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); BufferedReader br = new BufferedReader(new FileReader(file));String line =""; while((line = br.readLine())!=null ){ prest.setString(1, line.trim()); prest.addBatch(); } br.close(); prest.executeBatch(); prest.close(); conn.close(); OpenKM3.0分配和配置用户权限 weblogic.application.ModuleException:(急急) 有关String的问题 想截取string中指定位置的一段字符 怎么做呢。。。 泛型 CRM系统详细设计文档 struts分页问题 hql SSH报ora-1400 无法将NULL插入 .... 求助:初学者在Jboss中遇到的关于实体Bean的问题 《精通EJB》书上一个例子有点小疑问 小弟是个菜鸟 刚用java jDBC 想写个显示信息的web项目不知道那的问题显示不出来,希望各位大哥看下 checkbox判断是否选中并赋值
User[ ] users = ...;
for(int i=0; i<users.length; i++) {
stmt.setInt(1, users[i].getName());
stmt.setInt(2, users[i].getAge());
stmt.setInt(3, users[i].getShape());
stmt.addBatch();
}
int[ ] counts = stmt.executeBatch();
估计服务器很强大。楼主,你若用hibernate,则可以配置batch-size,最好给范围2-10
batch-size 小了点,至少给个千级别的。关于速度,这里有人做过测试:
http://blog.csdn.net/hn1232/article/details/4341111MySQL:1,000,000 条(百万)消耗 272,219毫秒(4分32秒);
batch-size对性能有很大影响的。
Session s = commonDao.getSession();Connection conn= s.connection();
String sql = "insert into "+tablename+"(id) values(?)";PreparedStatement prest = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
BufferedReader br = new BufferedReader(new FileReader(file));
String line =""; while((line = br.readLine())!=null ){
prest.setString(1, line.trim());
prest.addBatch();
} br.close();
prest.executeBatch();
prest.close();
conn.close();