Oracle数据库的应用环境,一般来说比SQL Server要复杂,这也是大家形容Oracle与SQL Server是单反相机与傻瓜相机的区别。不过,傻瓜相机也有其好处,下面是作者的实际对比。
初学Oracle感觉它功能很强大,但总感觉Oracle查询数据,添加数据都比SQL Server慢。
一下是测试环境:
操作系统 |
Microsoft Windows XP Professional |
CPU 类型 |
Intel(R) Celeron(R) CPU E3200 @ 2.40GHz DualCore , 2433 MHz (12 x 203) |
内存: |
DDR3 |
Oracle第三方工具: PL/SQL developer(F5) Toad (Ctrl+E)
测试的数据 51万多条数据
CID (编号)
companyname(公司名称)
Ctelephone (电话)
Phonetype (电话类型)
companyinfo (公司地址相关信息)
Rdatetime
booleanstate
***条测试语句
搜索包含“武大”的地址信息
- select * from dbo.total where companyname like '%武大%'
SQL Server 2005测试语句
- declare @starttime as datetime;
- declare @endtime as datetime;
- set @starttime = getdate();
- select * from dbo.total where companyinfo like '%武大%' set @endtime = getdate();
- select @starttime as 开始时间,@endtime as 结束时间,datediff(MS,@starttime,@endtime)as 运行时间
运行的结果: 4.5秒左右:
Oracle执行
- Set timing on;
- select * from dbo.total
- where companyname like '%武大%'
运行时间 18.5秒左右:
第二次多条语句搜索
SQL Server代码
- declare @starttime as datetime;
- declare @endtime as datetime;
- set @starttime = getdate();
- select * from dbo.total where companyinfo like '%华乐商务中心%'
- select * from dbo.total where companyinfo like '%联合国际%'
- select * from dbo.total where companyinfo like '%金丰大厦%'
- select * from dbo.total where companyinfo like '%光谷国际%'
- select * from dbo.total where companyinfo like '%国际商务大厦%'
- set @endtime = getdate();
- select @starttime as 开始时间,@endtime as 结束时间,datediff(MS,@starttime,@endtime)as 运行时间
执行的时间与17秒左右
Sql/Plus命令中执行
执行的时间与39秒左右
Executed in 10.906 seconds
Executed in 5.078 seconds
Executed in 10.218 seconds
Executed in 10.218 seconds
Executed in 3.141 seconds
在进程中SQL Server 2005和Oracle占用内存 都是200M左右!
从结果可以看出50多万数据中SQL Server 2005明显速度优势大于Oracle 10g。
原文标题:Oracl 10G与sql server2005搜索运行时间测试
链接:http://www.cnblogs.com/and/archive/2010/04/12/1710363.html
【编辑推荐】
- SQL Server使用索引实现数据访问优化
- SQL Server数据库优化经验总结
- 如何使用SQLServer数据库查询累计值
- 浅析Oracle和SqlServer存储过程的调试、出错处理
- 几段SQLServer语句和存储过程
- 50种方法优化SQL Server数据库查询