2009-05-21
使用JDBC插入大量数据的性能测试
关键字: 性能测试
使用jdbc向数据库插入100000条记录,分别使用statement,PreparedStatement,及PreparedStatement+批处理3种方式进行测试:
//1.使用statement插入100000条记录
public void exec(Connection conn){
try {
Long beginTime = System.currentTimeMillis();
conn.setAutoCommit(false);//设置手动提交
Statement st = conn.createStatement();
for(int i=0;i<100000;i++){
String sql="insert into t1(id) values ("+i+")";
st.executeUpdate(sql);
}
Long endTime = System.currentTimeMillis();
System.out.println("st:"+(endTime-beginTime)/1000+"秒");//计算时间
st.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//2.使用PreparedStatement对象
public void exec2(Connection conn){
try {
Long beginTime = System.currentTimeMillis();
conn.setAutoCommit(false);//手动提交
PreparedStatement pst = conn.prepareStatement("insert into t1(id) values (?)");
for(int i=0;i<100000;i++){
pst.setInt(1, i);
pst.execute();
}
conn.commit();
Long endTime = System.currentTimeMillis();
System.out.println("pst:"+(endTime-beginTime)/1000+"秒");//计算时间
pst.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//3.使用PreparedStatement + 批处理
public void exec3(Connection conn){
try {
conn.setAutoCommit(false);
Long beginTime = System.currentTimeMillis();
PreparedStatement pst = conn.prepareStatement("insert into t1(id) values (?)");
for(int i=1;i<=100000;i++){
pst.setInt(1, i);
pst.addBatch();
if(i%1000==0){//可以设置不同的大小;如50,100,500,1000等等
pst.executeBatch();
conn.commit();
pst.clearBatch();
}
}
Long endTime = System.currentTimeMillis();
System.out.println("pst+batch:"+(endTime-beginTime)/1000+"秒");
pst.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在Oracle 10g中测试,结果:
1.使用statement耗时142秒;
2.使用PreparedStatement耗时56秒;
3.使用PreparedStatement + 批处理耗时:
a.50条插入一次,耗时5秒;
b.100条插入一次,耗时2秒;
c.1000条以上插入一次,耗时1秒;
通过以上可以得出结论,在使用jdbc大批量插入数据时,明显使用第三种方式(PreparedStatement + 批处理)性能更优。
分享到:
相关推荐
Java连接数据库JDBCoracle
oracle jdbc 驱动,支持oracle 19c
JDBC驱动是连接Java应用程序和数据库的关键组件,对于Oracle 10g,我们需要的是Oracle JDBC驱动,通常称为ojdbc14.jar或更高版本。 安装Oracle JDBC驱动非常简单,只需将对应的jar文件添加到项目的类路径中。在Java...
在"JDBC oracle 驱动程序包"中,`oracle11g驱动jar包`是针对Oracle 11g版本的JDBC驱动程序的Java类库文件。这个`.jar`文件包含了所有必要的类和方法,使得Java应用程序能够连接到Oracle 11g数据库,执行SQL查询,...
标题中的"jdbc--drivers.zip_ jdbc oracle_JDBC ORACLE_oracle"表明这是一个关于JDBC驱动程序的压缩包,特别关注的是Oracle数据库的JDBC驱动。JDBC,全称Java Database Connectivity,是Java语言中用于与各种数据库...
在DataGrip中,我们需要安装合适的**Oracle JDBC驱动**(也称为ojdbc)来建立与Oracle数据库的连接。 1. **Oracle JDBC驱动**:Oracle JDBC驱动是Java应用程序连接Oracle数据库的桥梁。通常,Oracle提供两种类型的...
本文将深入探讨如何通过JDBC(Java Database Connectivity)连接Oracle远程数据库时,解决中文乱码的困扰。 首先,我们需要理解的是,中文乱码通常源于字符集不一致或配置不当。在Java应用中,数据在JVM(Java...
JDBC提供了一套规范,使得Java程序员可以使用统一的方法来访问数据库,包括Oracle数据库。Oracle是世界上最流行的商业关系型数据库管理系统之一,尤其在企业级应用中广泛应用。本资料包包含了一个使用Java JDBC连接...
JDBC读写Oracle的CLOB字段
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
当我们谈论“Java JDBC Oracle代码”时,我们指的是使用Java的JDBC API来与Oracle数据库进行通信的程序。 在Java中,JDBC提供了以下核心概念: 1. **Driver Manager**: 这是JDBC的入口点,负责管理所有注册的...
Oracle12C JDBC驱动是连接Java应用程序与Oracle数据库12c Release 2 (12.2.0.1) 的关键组件。JDBC(Java Database Connectivity)是Java平台中的一个标准API,它允许Java程序通过Java语言来访问和操作数据库。在...
Oracle JDBC驱动程序是Java开发者与Oracle数据库交互的重要工具,它提供了连接、查询和操作数据库的能力。在本篇文章中,我们将详细探讨Oracle JDBC驱动的不同版本,包括ojdbc6.jar、ojdbc7.jar、ojdbc8.jar、ojdbc...
JAVA 使用 JDBC 进行 insert 操作添加信息到数据库 一、 JDBC 概述 JDBC(Java Database Connectivity)是一种 Java 应用程序用来与数据库进行交互的 API。它提供了一组标准的接口,允许 Java 应用程序与各种...
Flink JDBC Connector 支持Oracle , Flink 1.13.6 支持Oracle 11.2.0.4
Oracle JDBC驱动包是Oracle数据库与Java应用程序之间进行通信的关键组件,它使得Java程序员能够通过编写Java代码来操作Oracle数据库。标题中的"ojdbc6"指的是Oracle JDBC驱动的一个特定版本,适用于Java SE 6环境。...
这里我们关注的是`jdbcoracle(文件上传)`,这很可能是指使用JDBC(Java Database Connectivity)来操作Oracle数据库,并实现文件上传的功能。以下是对这个主题的详细阐述: JDBC是Java编程语言中用于与各种类型...
### JDBC 连接 Oracle 字符集不同导致乱码问题解析及解决方案 #### 问题背景 在使用 JDBC(Java Database Connectivity)连接 Oracle 数据库时,可能会遇到一个常见的问题:从远程 Oracle 数据库获取的数据出现乱码...
在IT行业中,JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准API,而Oracle则是一款广泛应用的关系型数据库管理系统。"JDBC连接Oracle数据库测试"是一个关键的实践环节,确保应用程序能够...
《JDBC与Oracle的多国语言支持深度解析》 在当今全球化的背景下,软件系统必须具备多国语言支持,以满足不同国家和地区用户的使用需求。本文将深入探讨JDBC(Java Database Connectivity)与Oracle数据库在实现多国...