ORACLE数据库插入性能测试
ORACLE数据库插入性能测试
MKing
2010-3-8
测试环境基本信息:
OS:Windows XP sp3
DB:Oracle 9.2.0.1 未启用归档
DB重做日志文件大小:100MB
硬盘型号:SAMSUNG HD161GJ(SATA-300,160G,7200rpm,8M cache)
CPU:Intel Core2 E8400(3.0G)
内存:2G
通过HD Tune得到的硬盘基本测试信息,
IOPS:66
读取:90MB/s
写入:82MB/s
测试表脚本:
create table T_EMPLOYEE
(
ID NUMBER(10) not null,
NAME VARCHAR2(20) not null,
CREATE_DATE DATE default sysdate not null,
BIRTHDAY DATE,
ADDRESS VARCHAR2(200),
EMAIL VARCHAR2(200),
MOBILEPHONE VARCHAR2(11),
TELEPHONE VARCHAR2(20),
IDENTITY_CARD VARCHAR2(18),
WEIGHT NUMBER,
HEIGHT NUMBER
)
插入10万条记录,采用Java JDBC方式的测试结果如下(单位:秒):
执行方式
OCI
TCP/IP
OCI
IPC
thin
AutoCommit=true
thin
AutoCommit=false
Statement(test1)
69.84
67.03
66.96
42.81
PreparedStatement(test2)
40
37.18
39.21
12.66
PreparedStatement Batch(test3)
51.72
50.78
2.81
2.81
从测试结果可以看出,采用thin连接方式 batch插入的性能最好,而采用oci的batch插入性能未得到提高,也可能是bug。
记得以前在ORACLE文档里说采用oci模式的性能最好,9i中经过测试完全不成立,我想可能是以前java本身性能的问题,现在java语言的性能已经非常好了,thin连接方式不管是从管理还性能方面来说都是首选了。
注:采用oci的batch插入性能未得到提高确实是BUG,后来把ORACLE客户端升级到9.2.0.8,花的时间只要6s,但还是比thin的方式差。
以下是测试程序源码:
import java.sql.*;
import java.util.Calendar;
public class inserttest {
 
相关文档:
我的安装过程
1、编辑 /etc/apt/sources.list :
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
sudo gedit /etc/apt/sources.list
加入下面这个源:
deb http://oss.oracle.com/debian unst ......
1.2.1 Oracle与AIX的角色
Oracle运行在AIX上,提供着数据的存储和管理服务。数据即信息,Oracle数据库就是应用系统中存储数据信息的一个集中存储位置、一种存取方法的商品化实现。AIX是承载Oracle运行的底层平台,进行着CPU调度、内存调度、存储管理、文件管理、网络驱动等系统运行和维护工作。
作为对应用系统的支 ......
因为强制关机,开机的时候进入数据库报错:
ora_01034:oracle not available
ora_27101:shared memory realm does not exit
解决方法:
1.打开CMD
2.输入 sqlplus "/as sysdba"
3.回车
4.输入 startup
5.结束 ......
----------------------------------------------------------------------------
相关知识:Oracle SYNONYM(同义词)
----------------------------------------------------------------------------
是一种映射关系,可以理解为表的一种固定别名
同义词的好处:建立一个同义词可以排除一个对象名字的限制
如果你的 ......