ITPUB名人堂-采访从C/C++到oracle开发成功转型嘉宾 卢涛(ID:〇〇)圆满结束

2021-12-13 00:00:00 数据库 优化 开发 业务 性能

本期我们邀请到10年开发工程师,分享了从C/C++到oracle开发成功转型的职场经历,更多的介绍oracle开发中的成功经验。

Hwayw:
您先自我介绍一下?分享以下您的职业经历?您目前的从事的工作??
〇〇:
卢涛,1995年参加工作,2001年转到IT部门从事c/c++软件开发,2004年开始做系统分析和Oracle数据库方面工作。参加过多个性普查数据处理项目的开发和运维,目前主要从事统计报表联网填报系统的后台支持。

Hwayw:
根据您多年的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。

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

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

Hwayw:
多数人认为:数据库的开发有一个后期需要注意的就是数据库的灾备和恢复,在您工作中遇到这样的问题是怎么解决?分享一个您做的成功的例子?

〇〇:
备份和恢复很重要,但主要还是和系统运维人员的工作更密切。对开发人员而言,exp/imp也可以完成日常的数据备份和恢复业务。如果要求更高性能,还有expdp/impdp和传输表空间等选择。但要注意:开发时必须根据未来的部署场景确定设计思路,比如将来需要利用归档日志恢复,就不能用nologging方式创建表,否则会无法恢复。

Hwayw:
您也是已经出版的《剑破冰山—oracle开发的艺术》一书的作者之一,这本书的销量很不错,能给大家简单介绍一下这本书吗?分享一下您当时写作的一些心得?
〇〇:
这本书是ITPUB Oracle开发版几个版主合作的结果,我主要负责召集作者和张罗。Newkid, dingjun, lastwinner, bq_wang等贡献了很有价值的内容,包括解决各种实际问题的思路、方案和特定技术的要点。我自己写的章节大多来自实际项目经历,比如问题2中的成功案例2,3就在第8章提及了,案例1在第9章提及了。现在回头去想,还是有不少遗憾,比如group by cube在Oracle 10g中就已经用新的性能更高的执行计划了。


嘉宾介绍

卢涛,1995年参加工作,2001年转到IT部门从事c/c++软件开发,2004年开始做系统分析和Oracle数据库方面工作。参加过多个性普查数据处理项目的开发和运维,目前主要从事统计报表联网填报系统的后台支持。


相关文章