WEB开发网
开发学院数据库MSSQL Server 数据库批量数据插入问题分析 阅读

数据库批量数据插入问题分析

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: 输出结果:commonInsert()执行时间为:13828ms二、普通插入+手动提交:setAutoCommit(false)、commit()代码:1Connectionconn=source.getConnection();2conn.setAutoCommit(false);3State

输出结果:

commonInsert()执行时间为:13828ms

二、普通插入+手动提交:setAutoCommit(false)、commit()

代码:

 1Connection conn=source.getConnection();
 2conn.setAutoCommit(false);
 3Statement s=conn.createStatement();
 4String sql="";
 5long start=System.currentTimeMillis();
 6for(int i=0;i<100000;i++)
 7{
 8   sql="insert into user(id,name) value('"+(i+1)+"','chenxinhan')";
 9   s.execute(sql);
10}
11conn.commit();
12s.close();
13conn.close();
14long end=System.currentTimeMillis();
15System.out.println("commonInsert()执行时间为:"+(end-start)+"ms");

输出结果:

commonInsert()执行时间为:13813ms

对比分析:

可以看出,仅仅是这种方式的设置,对性能的影响并不大。

三、普通插入+手动提交+ prepareStatement方式

代码:

 1Connection conn=source.getConnection();
 2        conn.setAutoCommit(false);
 3        PreparedStatement ps=conn.prepareStatement("insert into user(id,name) value(?,?)");
 4        long start=System.currentTimeMillis();
 5        for(int i=0;i<100000;i++)
 6        {
 7            ps.setString(1,(i+1)+"");
 8            ps.setString(2,"chenxinhan");
 9            ps.execute();
10        }
11        conn.commit();
12        ps.close();
13        conn.close();
14        long end=System.currentTimeMillis();
15        System.out.println("prepareStatementInsert()执行时间为:"+(end-start)+"ms");

上一页  1 2 3 4 5 6  下一页

Tags:数据库 批量 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接