Oracle数据库插入性能测试

发表于:2010-3-09 13:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:MKing(CSDNBlog)    来源:51Testing软件测试网采编

  以下是测试程序源码:

import java.sql.*;
import java.util.Calendar;
 
public class inserttest {
      public static void test1(Connection iConn) throws SQLException{
            Statement statement = iConn.createStatement();
            String str_i;
            for (int i=1;i<10000;i++) {
                  str_i=new Integer(i).toString();
                  String vSQL = "insert into t_employee(id,name,birthday,address,email,mobilephone,telephone,identity_card,weight,height)\n"
                              + "values(seq_t_employee_id.nextval,'张三"+str_i+ "',sysdate - "+str_i+","
                              + "'上海市南京东路11号203室"+str_i+"',"
                              + "'abcd"+str_i+"@gmail.com',"
                              + "'138'|| trim(to_char("+str_i+", '00000000')),"
                              + "'021-'|| trim(to_char("+str_i+", '00000000')),"
                              + "'3504561980' || trim(to_char("+str_i+", '00000000')),"
                              + "64,1.72)";
                  //System.out.println(vSQL);
                  statement.executeUpdate(vSQL);
            }
      }

      public static void test2(Connection iConn) throws SQLException{
            String vSQL = "insert into t_employee(id,name,birthday,address,email,mobilephone,telephone,identity_card,weight,height)\n"
                  + "values(seq_t_employee_id.nextval,'张三'||?,sysdate - ?,"
                  + "'上海市南京东路11号203室'||?,"
                  + "'abcd'||?||'@gmail.com',"
                  + "'138'|| trim(to_char(?, '00000000')),"
                  + "'021-'|| trim(to_char(?, '00000000')),"
                  + "'3504561980' || trim(to_char(?, '00000000')),"
                  + "64,1.72)";    
            PreparedStatement ps = iConn.prepareStatement(vSQL); 
            String str_i;
            for (int i=1;i<10000;i++) {
                  str_i=new Integer(i).toString();
                  ps.setString(1, str_i);
                  ps.setString(2, str_i);
                  ps.setString(3, str_i);
                  ps.setString(4, str_i);
                  ps.setInt(5, i);
                  ps.setInt(6, i);
                  ps.setInt(7, i);
                  ps.executeUpdate();
            }
      }    

      public static void test3(Connection iConn) throws SQLException{
            String vSQL = "insert into t_employee(id,name,birthday,address,email,mobilephone,telephone,identity_card,weight,height)\n"
                  + "values(seq_t_employee_id.nextval,'张三'||?,sysdate - ?,"
                  + "'上海市南京东路11号203室'||?,"
                  + "'abcd'||?||'@gmail.com',"
                  + "'138'|| trim(to_char(?, '00000000')),"
                  + "'021-'|| trim(to_char(?, '00000000')),"
                  + "'3504561980' || trim(to_char(?, '00000000')),"
                  + "64,1.72)";    
            PreparedStatement ps = iConn.prepareStatement(vSQL); 
            String str_i;
            for (int i=1;i<10000;i++) {
                  str_i=new Integer(i).toString();
                  ps.setString(1, str_i);
                  ps.setString(2, str_i);
                  ps.setString(3, str_i);
                  ps.setString(4, str_i);
                  ps.setInt(5, i);
                  ps.setInt(6, i);
                  ps.setInt(7, i);
                  ps.addBatch();
                  //ps.executeUpdate();
            }
            ps.executeBatch();
      }    
           
      public static void main(String[] args) throws ClassNotFoundException,SQLException {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:mydb", "yzs", "yzs");
            Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@mydb", "yzs", "yzs");
            java.util.Date d1=Calendar.getInstance().getTime();
            conn.setAutoCommit(false);
            test2(conn);
            java.util.Date d2= Calendar.getInstance().getTime();
            System.out.println("es:"+(d2.getTime()-d1.getTime())+"ms");
            conn.commit();
            conn.close();
      }
}

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号