您的当前位置:首页正文

大数据量测试比较oracle与sql server性能

来源:华佗小知识
一、在测试组环境中实际测试结果:测试机器172.18.2.179硬件:CPU3.2G*2双CPU物理内存1G硬盘:80G*2,7200转/s硬盘缓存8MSqlserver2000,在系统自带的pubs数据库中生成表,并插入数据,插入数据速度如下统计:写入1万条数据,耗时3.5秒写入10万条数据,耗时29.9秒写入100万条数据,耗时289秒平均写入速度:2857条/S平均写入速度:3344条/S平均年写入速度:3460条/S脚本如下,仅有两个常规字段(实际应用时,把表名中的X替换成1、10、100,并修改循环次数,分别执行三次,记录数据插入完成所用时间,使用秒表计时):CREATETABLEtblTestX(iIDintIDENTITY(1,1),strDatachar(10))GO

SETNOCOUNTONGO

INSERTINTOtblTestXVALUES('Test')WHILE@@IDENTITY<1000000

INSERTINTOtblTestXVALUES('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并修改循环次数,分别执行四次,记录数据插入完成所用时间,使用秒表计时):createtabletblTstX(idinteger,testVARCHAR2(10));declareainteger;beginforain1..10loopinsertintotblTstXvalues(a,'mytest');endloop;end;/以上测试过程中,oracle进程内存占用70M左右。Cpu占用50%本机执行,不考虑网络延迟。二、Sqlserver与oracle的比较:在硬件条件相同条件下,oracle写入数据速率约为sqlserver的7.5倍。sqlserver耗时(秒)写入1万条数据写入10万条数据写入100万条数据写入1000万条数据Oracle耗时速率(条/秒)耗时(秒)28573344346014.0538.8400.03比较速率(条/秒)oracle写入数据速10000率约为24691sqlserver的257737.5倍249983.529.9289三、从网络等获取资料结果:数据库插入数据的速度与下列因素关系比较密切:1、硬件因素:磁盘转速、磁盘I/O缓存、是否磁盘阵列,其次是CPU、内存等。2、软件因素:采用某些优化工具对sqlserver进行优化,优化其I/O方面的性能。3、Sql语法因素:采用经优化的sql语句或方法,如把逐行插入写成大数据量事务执行。

因篇幅问题不能全部显示,请点此查看更多更全内容