
大数据量测试比较oracle与sql server性能.doc
2页一、在测试组环境中实际测试结果:测试机器 硬件:CPU 3.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 ( ilD int IDENTITY(1,1), strData char(10) GOSET NOCOUNT ONGOINSERT INTO tblTestX VALUES ('Test')WHILE @@IDENTITY < 1000000INSERT INTO tblTestX VALUES ('Test')以上测试过程中,sqlserver进程内存占用70M左右。
Cpu占用14% 本机执行,不考虑网络延迟♦ oracle9i 中,在现有 sncp 数据库中生成表,并插入数据,插入数据速度如下统计:写入 1 万条数据, 耗时 1 秒写入 10 万条数据,耗时 4.05 秒写入 100 万条数据,耗时 38.8 秒写入 1000 万条数据,耗时 400.03 秒平均写入速度:10000条/S平均写入速度:24691条/S平均年写入速度:25773 条/S平均年写入速度:24998 条/S脚本如下,仅有两个常规字段(实际应用时,把表名中的X替换成1、10、100, 1000并修改循环次数,分别执行四次,记录数据插入完成所用时间,使用秒表计时):create table tblTstX(id integer, test VARCHAR2(10));declarea integer;beginfor a in 1..10 loopinsert 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.933444.0524691写入100万条数据289346038.825773写入1000万条数据400.0324998三、从网络等获取资料结果:数据库插入数据的速度与下列因素关系比较密切1、 硬件因素:磁盘转速、磁盘I/O缓存、是否磁盘阵列,其次是CPU、内存等2、 软件因素:采用某些优化工具对sqlserver进行优化,优化其I/O方面的性能3、 Sql语法因素:采用经优化的sql语句或方法,如把逐行插入写成大数据量事务执行。












