li
  当前位置:主页 > 性能优化 > 文章内容
li
访问本地物化视图一定比访问远端表快吗
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:4  

今天犯了一个想当然的错误,认为访问本地对象一定比访问远端对象快。http://www.itpub.net/337560.html

正好总结一下,引以为戒。


如果其它所有条件完全一致:比如两台服务器的硬件软件相同,数据库的版本和设置相同,查询的对象数据结果相同,包含数据量相同,两个查询的执行计划相同,甚至数据的读取来源也相同(都是从CACHE中获得或者都是从磁盘中获得),这时,由于二者的差别就是数据的物理位置不同,因此远端操作所多花费的时间就是请求消息和结果消息在网络上传送的时间。

一般情况下说访问远端数据会慢是出于两种假设:

第一种就是上面所说的其它条件完全相同的情况。

第二种是条件不完全相同,但是相差不是很多,但是由于查询语句有大量的结果需要返回,由于网络传输的速度和本地硬盘读取的速度不是一个数量级,这时候整个sql语句的瓶颈在于网络传送结果。

但是对于查询结果集很小的情况,比如查询COUNT(*)等操作,网络传输的内容很少,因此当其他差别比较明显时,比如远端数据库恰好缓冲了需要访问的表,而本地数据库中没有缓存,这时就会出现访问本地速度比访问远端数据还慢的情况。当然这种情况一般只出现在第一次。

另外,执行计划、硬件情况等不同也会影响查询的结果。

不过,对于绝大多数的情况,还是应该尽量避免访问远端数据库的。




  上一篇: 如何从远端返回LOB对象   下一篇: 通过数据库链访问当前库
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·如何从远端返回LOB对象
·使用数据库链的几个小技巧
·通过数据库链执行DDL语句
·一个同义词可能指向多个对象
·JOB自动执行出错,但手工执行正常...
·Redhat AS4 for x86_64上安装Ora...
·物化视图的快速刷新(二)
·减少全库导入时发生的错误(五)
·导入报错OCI-21500 [kopuigpfx1]
·减少全库导入时发生的错误(二)
·通过数据库链访问当前库
·数据库链的USING语句
·能否通过数据库链传播游标
·远端数据库读取插入到另一个远端...
·远端数据库读取插入到另一个远端...
·调整本地时间的小bug
·PUBLIC数据库链无法删除的问题(...
·数据库链与同义词
·ORA-7445(qxuagtag)错误
·对远端表使用NVL2的bug
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接