数据库插入大量数据性能测试——批处理+事务VS普通插入
2012-09-07 17:59
483 查看
测试:sql server插入10000行数据
关键代码(批处理+事务):
关键代码(普通插入):
最后:差距还是挺大的!现在见识批处理和事务的高效了吧!
关键代码(批处理+事务):
public void insertUser() { String sql = "insert into users values(?,?)"; Connection conn = getConnection(); PreparedStatement ps = null; try { // 禁止自动提交事务 conn.setAutoCommit(false); // 创建能返回自动生成的主键的值的预编译对象 ps = conn.prepareStatement(sql); //开始时间的毫秒数 Long start=System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { ps.setString(1, i+""); ps.setInt(2, 22); ps.addBatch();// 添加到批处理命令中 } ps.executeBatch();// 执行批处理 conn.commit();// 提交事务 //结束时间的毫秒数 Long stop=System.currentTimeMillis(); //得到总耗时 Long ms=stop-start; System.out.println("插入一万记录耗时:"+ms+"毫秒"); } catch (SQLException e) { e.printStackTrace(); //取消事务 try{ conn.rollback(); }catch(SQLException ee){ ee.printStackTrace(); } } finally { //打开自动提交事务 try { conn.setAutoCommit(true); } catch (SQLException e) { e.printStackTrace(); } close(null, ps, conn); } }结果:
关键代码(普通插入):
public void insertUser() { String sql = "insert into users values(?,?)"; Connection conn = getConnection(); PreparedStatement ps = null; try { // 创建能返回自动生成的主键的值的预编译对象 ps = conn.prepareStatement(sql); //开始时间的毫秒数 Long start=System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { ps.setString(1, i+""); ps.setInt(2, 22); ps.executeUpdate(); } //结束时间的毫秒数 Long stop=System.currentTimeMillis(); //得到总耗时 Long ms=stop-start; System.out.println("插入一万记录耗时:"+ms+"毫秒"); } catch (SQLException e) { e.printStackTrace(); } finally { close(null, ps, conn); } }结果:
最后:差距还是挺大的!现在见识批处理和事务的高效了吧!
相关文章推荐
- 大量数据情况下单线程插入和多线程(高并发)insert数据库的性能测试
- 大量数据情况下单线程插入和多线程insert数据库的性能测试
- 数据库压力测试--MySQL数据库快速插入大量数据
- 使用JDBC插入大量数据的性能测试
- PG数据库单表插入大量数据引发性能故障
- 使用JDBC插入大量数据的性能测试
- 使用JDBC插入大量数据的性能测试
- 使用JDBC插入大量数据的性能测试
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- Sqlite3插入大量数据性能优化
- C#:30行数据插入到数据库中的效率测试-一行行执行、构造SQL一次执行、SqlBulkCopy
- Oracle和MySQL数据插入性能测试
- mysql---为测试数据库填充大量数据
- Entity Framework与ADO.NET批量插入数据性能测试
- 做的一些测试数据的分析 一个是直接循环插入数据库 一个是循环好了放在数组里 在插入数据库
- Sqlite3插入大量数据性能优化
- PostgreSQL数据库如何快速插入大量数据
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- ORACLE数据库测试数据插入速度