Oralce优化的方案

 

看到某版主OO的采访,就着重某点记录了下来

     
问:根据您多年的Oracle开发经验,在Oracle数据库性能优化方面您有什么建议和经验?分享一个您觉得最成功的例子?
答:Oracle数据库性能优化,如果是一个从无到有的系统,那么就要从设计时开始考虑。性能优化要遵循下面对基于Oracle应用的优化的推荐方法,它分为10个步骤。按照投资回报减少的顺序给出优化过程步骤,对性能影响最大就越靠前:
1.优化业务规则
2.优化数据库设计
3.优化应用程序设计
4.优化数据库的逻辑结构
5.优化数据库操作
6.优化访问路径
7.优化内存分配
8.优化I/O和物理结构
9.优化资源争用
10.优化所采用的平台
如果是对已运行的系统进行优化,一般只有后6~7条可以采用。
表面上优化最成功的例子都源于开发人员的错误设计,如果从开始设计时就遵循上述原则,也就没有后面提升那么多倍的事了。
案例1在一个自定义的脚本中用二分查找代替顺序查找,对40000多家单位的数十万种产品父子关系审核从2145秒缩短为163秒。再用SQL语句代替过程语言,几秒钟就完成了。
案例2 将一个设计成EAV模型的大表转换为正常2维表,汇总时间由13小时缩短为30多秒。
案例3 利用对group by 多个列的临时表代替对基表的count(case when)和sum(case when)操作,将汇总时间缩短到原来的1/3。

问:oracle开发中您觉得遇到的最大难题是什么?对于您在实际业务中碰到oracle相关的一些难题是怎样克服?有什么秘诀?
答:软件开发最大的难题应该是对业务理解的提炼,把客户的需求用最有效的办法实现,这既包括简明易懂的代码,也包括较高的效率。而对Oracle而言,最大的难题是Oracle博大精深,有时候它已经提供了适合业务需求的某个功能,而我们却不知道或不会用。过去Oracle技术资料很少,2004年左右Oracle的资源还是相对较少,在Unix上安装、打补丁都比较困难。现在很多信息都可以很容易从网上得到,比如RAC的部署步骤。Oracle版本的升级也增强了功能,如EM的使用非常方便,没有基础的人员也可以很容易捕获系统问题。解决难题的秘诀就是从业务需要中学习对应的技术,啃官方文档。个人遇到的问题总是有限的,要解决未来可能遇到的问题还要增长知识面,看ITPUB的帖子也可以借鉴别人的经验,大多数版主和网友都比较热心,无论什么难题都能提供解决思路,特别是一些SQL编写问题。

Hwayw:
现在有很多人认为:oracle数据库在很多方面已经满足不了业务的需要,特别是在商务智能方面,再有hadoop等新技术的出现是否会对现在的ORACLE DBA的前景造成影响?您怎么来看待这个问题?
〇〇:
我对“大数据”和商务智能的技术了解不多,但每种技术都有适用的场景,在不远的将来,我觉得传统数据库还有很大市场,特别是金融、电信这种对可靠性要求很高的场合。而且传统厂商也在用数据库一体机等利用硬件发展的最新成果提高传统数据库的性能和处理能力。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26107758/viewspace-716826/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26107758/viewspace-716826/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值