大数据量测试比较oracle与sql server性能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、在测试组环境中实际测试结果:
测试机器172.18.2.179
硬件:CPU3.2G*2双CPU物理内存1G硬盘:80G*2,7200转/s硬盘缓存8M
◆Sqlserver2000,在系统自带的pubs数据库中生成表,并插入数据,插入数据速度如下统计:
写入1万条数据,耗时3.5秒平均写入速度:2857条/S
写入10万条数据,耗时29.9秒平均写入速度:3344条/S
写入100万条数据,耗时289秒平均年写入速度:3460条/S
脚本如下,仅有两个常规字段(实际应用时,把表名中的X替换成1、10、100,并修改循环次数,分别执行三次,记录数据插入完成所用时间,使用秒表计时):
CREATE TABLE tblTestX(iID int IDENTITY(1,1),strData char(10)) GO
SET NOCOUNT ON
GO
INSERT INTO tblTestX VALUES('Test')
WHILE@@IDENTITY<1000000
INSERT INTO tblTestX VALUES('Test')
以上测试过程中,sqlserver进程内存占用70M左右。Cpu占用14%。
本机执行,不考虑网络延迟。
◆oracle9i中,在现有sncp数据库中生成表,并插入数据,插入数据速度如下统计:
写入1万条数据,耗时1秒平均写入速度:10000条/S
写入10万条数据,耗时4.05秒平均写入速度:24691条/S
写入100万条数据,耗时38.8秒平均年写入速度:25773条/S
写入1000万条数据,耗时400.03秒平均年写入速度:24998条/S
脚本如下,仅有两个常规字段(实际应用时,把表名中的X替换成1、10、100,1000并修改循环次数,分别执行四次,记录数据插入完成所用时间,使用秒表计时):
create table tblTstX(id integer,test VARCHAR2(10));
declare
a integer;
begin
for a in 1..10loop
insert into tblTstX values(a,'mytest');end loop;end;/
以上测试过程中,oracle 进程内存占用70M 左右。Cpu 占用50%本机执行,不考虑网络延迟。
二、Sqlserver 与oracle 的比较:
在硬件条件相同条件下,oracle 写入数据速率约为sqlserver 的7.5倍。
sqlserver Oracle 耗时
比较
耗时(秒)
速率(条/秒)耗时(秒)速率(条/秒)oracle 写
入数据速率约为sqlserver 的7.5倍写入1万条数据 3.52857110000
写入10万条数据29.93344 4.0524691
写入100万条数据289
3460
38.825773
写入1000万条数据
400.03
24998
三、从网络等获取资料结果:
数据库插入数据的速度与下列因素关系比较密切:
1、硬件因素:磁盘转速、磁盘I/O 缓存、是否磁盘阵列,其次是CPU 、内存等。
2、软件因素:采用某些优化工具对sqlserver 进行优化,优化其I/O 方面的性能。
3、Sql 语法因素:采用经优化的sql 语句或方法,如把逐行插入写成大数据量事务执行。