(转)oracle ace 谈数据库技术学习
【IT168技术资讯】
主持人: 由于时间的关系我们就不多讲了,最后一个问题我想让大家跟网友们分享一下学习Oracle的经验,包括推荐一些好的书。跟网友分享一下学习Oracle的经验。
石树斌: 我很早就接触Oracle了,从Oracle7版本就开始了,但是我觉得我做的比较杂,从应用开发、数据库、项目管理、销售等,很多都做。
我真正喜欢Oracle是2000年。2000年,当时听说有一个Oracle技术最牛的人,前两年还搞一个培训,他原来在邮政银行,一个批量两个半小时,他去以后,8i的数据库,调了几个参数,只需要十几分钟就弄完了。那个时候我就比较感兴趣,觉得很神奇,后来就上ITPUB,因为ITPUB是国内公认Oracle技术最好的论坛。上ITPUB去看一些问题,当然自己也多看了一些别的书,论坛上交流是很重要的。
我这里有几本书,自己看过觉得都还不错,其中有盖国强写的一本书《深入浅出Oracle》,《Oracle数据库性能优化》。另外,在学习方面,我知道biti是有两年一个帖子都没放过,所以这个很重要,学习的过程大家吃点苦肯定会有回报。
冯春培: 这种东西就是说,其实当时就是因为你自己没有环境,我不干这个,我是做pro c开发的,没有数据库给你管,你也不是数据库管理员,那怎么办呢?就去看别人的问题,尝试着去理解别人的问题,然后尝试去引导别人解决问题,这个很重要。很多人他只看,不上论坛,不沟通,他只看书,但是当你要想引导人家去解决这个问题,当把你的想法表达出来让别人来理解你时,这个学习比你只看不说是完全不一样的,为什么很多人会觉得培训讲课自己收获非常大,那是因为你会发现自己有很多很多的漏洞,然后你会去尝试弥补这些漏洞,这样你自己的收获是最大的。不光自己要学,还要把学的东西share给大家,表达给大家,让别人明白,你在这个过程中受益是非常大的。当然这只是一个角度,学习这个东西大家以前都谈了很多了,我只是强调这一点。顺着这个话题说一下这种看法,不希望大家都去潜水,如果你想要学好的话千万不潜水。
楼方鑫: 我觉得像biti说的挺好的,其实我会换一种思维,就是他把自己的成绩建立在别人的痛苦之上,别人犯了错,他去欣赏,其实这中间你要看到别人的东西,你要去思考,你要尝试想办法解决,这个是很重要,这个跟你讲课是一样的道理。
我很清楚地记得2000年的时候,我给别人上培训课,在第三堂课时,对学生说,这堂课,你们其中的所有人,加起来学到的东西,都没有我学到的东西多。这样你会发现你要回答别人的问题,到最后真正你完全解决的时候,你会发现你会学到很多东西,也可能比你发问学到更多的东西,你很负责任地去查资料,尽量回答准确,而不是你来管理机器,专门入库,这样肯定不行。
主持人: 这就是说,其实我们个人在工作当中不可能遇到这些所有不同的问题,只要把人家的问题当做自己的问题,你才能不断提高。
黄老师: 社区就是用来交流经验嘛。
楼方鑫: 其实就是说你当一个DBA,一开始你会遇到很多问题,但是慢慢的你会很难遇到问题,因为你把它变好了之后,你只有从别人那儿学习经验,看到别人的痛处,权当成你的开心了。
主持人: 我觉得大辉自己个人网站写的东西是非常好的,你这边有没有什么学习经验跟大家分享一下。
冯大辉: 我现在觉得,善于总结还是比较重要的,因为现在网上有各种渠道,这个信息量是相当大的,自己要适当做一些过滤和取舍。有的时候包括经常网上看到所谓的解决方案,但是不清楚到底这个东西搞下去之后,整个系统还是会弄得一塌糊涂。另外,多听取一些其他人的经验,或者站在其他人的角度考虑他当时弄出这个,或者如何解决这个问题的。从DBA的角度换位思考可能也会更方便。
楼方鑫: 我补充一下,其实我们的目标不是拷贝下来,Save下来就好了,而是要真正的理解,这是非常重要的,我可以把它处理掉。但是整个拷贝下来,你会发现拷贝久了这个东西你是根本不会看的。
冯春培: 这个东西就像我原来有一段时间,我去研究Oracle internal,我自己研究的,到现在我都很清楚地记得这个东西是怎么回事。三四年过去了,每一个细节我都记得很清楚,Oracle的DSI,那玩意儿的教材,内部流程,我跟你说,我就看过两页,其中两页是为了帮别人去找一个问题,我去查了两页,其他的我一律都没看过。因为我觉得看了DSI,再去看那个东西没用,一个星期忘不了,两个星期就忘了。
楼方鑫: 其实像研究block格式,我从来没有看过DSI,我以前下载过,但是文档丢了,一个键全部删掉了。
冯春培: 资料像很多东西只是你长久的测试或者是思考,有时候有些东西不是很有把握,然后某一个资料终于证明了我的想法,这个时候你豁然开朗,一千个问题一下迎刃而解,但是一开始就看资料的话。
楼方鑫: 其实最关键的是,你看到他们的资料之后,能用自己的方法去印证它,这是很重要的。
黄老师: 那么我觉得block结构里面有一些东西是很好猜的,但是有一些是不大好猜的。
楼方鑫: 这个问题我很清楚的记得,我研究Block格式的时候曾经遇到过。我最近遇到的难题就是我把Block的每个字段,都是靠新的词儿,把那个分出来,我打印了一套Block格式,然后那次停住了,没事儿我就看两眼,没事儿再看两眼,结果过了一个月,有一天我在火车上。就那15分钟突然明白了,但是当时确实开心,整个人浑身轻松了。这个东西要完全用你自己的方法去研究,而不是你去千方百计找资料。我当时从来没有想过会有资料一步一步告诉你去怎样做。你还是要自己去发现它。
黄老师: 张乐奕(kamus)也说一下,我觉得张乐奕(kamus)的经历会比较典型,因为他是一个文科书生,他是学日语的,然后现在是Oracle专业工程师。
张乐奕(kamus): 其实一定要有热情,我举一个例子,前不久我刚碰到一个国内很大型的企业,国内的企业,也是这次Oracle Open World的赞助商之一,名字我不说了,当时我在一家很小型的公司里工作的时候,这个公司曾经是我的目标,就是我特别想去这样一个国内的大型企业,前不久碰到这个大型企业的工程师,他聊天时候就跟我说,他说我特别想进Oracle,跟我说了很多,后来第二天,客户要装一个东西,装了grid control,然后他做的事情就是下载好了,他说你来装grid control吧,我当时觉得很奇怪,如果这是在我之前,我从来没有装过的东西, 我会非常希望有这样一个机会让我去练手,这份经验是很难得的,因为不可能让你再有一个小型机,你自己的PC上你去装一份grid control。
我记得很清楚,就是在我进入Oracle公司之后,因为Sql backup刚推出来不久,我们一个客户,应该是国内很早的,要试用这个Sql backup,但是不是我们部门的事儿,他们找的OSS,但是因为我听到了这个事儿,我特意的自己给客户打电话,我说没关系,ORACLE工程师可以在那装,但是我能够过去看一下,我觉得仍然对Oracle抱有很大的热情,我觉得这是非常重要的,你不能只是抱怨,仅仅一件小的事情,当一个你能赚取到经验的机会降临到你的头上推出来,让我去做,这样的话你可能永远会在这样的公司。
我觉得就是说,你一定要去热爱一个东西,很多人可能只是把Oracle当做一个谋生的,手段会觉得比programer赚钱更多,所以我要去做DBA,可能就是这样去想,但是这样的我相信你做的不会太好,也许你可能会做sales,做别的东西,但是我觉得你不会做的很好的DBA,所以热情是一定要的。
当时我想学Oracle的时候,大概我花一年的时候去考OCP,很多人都认为考OCP有什么意义,很多人说OCP这种东西总共就一百来道题,背一套下去,99分很快就拿到了,其实对我来说,当时考OCP就是一个学习的动力,因为交了钱你就一定要考过去,这就是给自己学习的动力,那时候我每天白天要写程序,然后晚上回去学会花两个小时,周末的时候,除了周末每天晚上会花两个小时去看student guide,然后周六、周日会全天的看student guide,然后自己做实验。我记得很清楚,刚开始的时候,我的很多问题是eygle,然后还有Biti,他们有回答,那时候我在数据库的OCP吧,就是渐渐的你会发现当时自己从一个提问者变成一个回答问题的时候,这种分享的快感和你成长的快感,你会觉得是非常值得的。
盖国强: 我个人觉得,包括刚才大家都说这么多,我觉得有一点共同,就是大家对这个技术,或者对Oracle这个产品抱有极大的兴趣,或者对你从事的这份工作,不管你研究数据库、存储、操作系统,,自己所做的事情都抱有极大的兴趣,而且我一致认为,兴趣是最好的老师,有兴趣在引导着你,去激励着你,这样的话不管你去学习,你去探索,包括一个Block看了几个月,我觉得这个东西很大一部分是由兴趣推动的,如果你对这个东西不感兴趣,只是作为一个谋生的手段,我觉得很多人的研究就是浅尝辄止,你无法深入,你无法深入你就无法……
张乐奕: 因为你从一件事情没有办法获得愉快感觉的话,你一定会放弃它的,你觉得它只是我要去做这件事情,你一定会放弃他。
盖国强: 所以刚才讨论的问题就是说,Oracle越来越自动化了,就是说DBA以后会不会没有工作,或者是找不到工作,或者是就业形势不好。实际上我回过头来说,我反而觉得这个软件更加自动化了,反而是一个机会,是一个机遇,这是个什么概念呢?我是觉得一个软件虽然更加自动化了,但是那些晚来的人,后接触的人,他可能越来越不知道这个数据库真正的运行原理和机制,那么你那些更早来接触的,或者你学习研究更深入的人,你就能更深入了解它的运行机制,运行原理,那么你比别人拥有更多的底蕴,你能够解决更深层次的问题,我觉得反而对于先来者和先入者,还是有好处的。
楼方鑫: 这个是有好处的,这个东西你要去找高手的话,他们的代价是非常非常高的。
张乐奕: 开始对Oracle感兴趣的时候,sql expert那个叫做什么工具来的?
楼方鑫: sql expert。
张乐奕: 那是我刚开始对Oracle数据库感兴趣,那时候我们公司也只有我知道Oracle是这么样一个东西,大概有些什么可以自己独立地安装Oracle的数据库,只有我可以。然后写程序,那时候说一个SQl tuning一下,那我会把SQl放进去,然后按一下run,然后比一下,我记得很清楚它有一个SQl,从十几分钟一下调到了几秒,然后我当时就会把这个SQl直接给研发人员,我说你就用这个SQl,然后开发人员一看,效率真的很高。这个得到了第一点是我在公司的形象提升了,这是第一点,因为其实他不知道我只是按了一个run就出来了这个东西,但是第二点,我就发现这个SQl是怎么调的,它把一个索引后面加了竖线,再加了两个单引号,当时我根本不知道这是什么含义,现在我知道了,就是把这个索引禁止掉了,等于是没有索引了。所以我就觉得如果Oracle也自动到这样的程度,你只能说是我能给你好的结果,但是为什么你可能就不知道了,别人问你,你干嘛给我这个SQl,你感觉是什么意思?你不知道。
盖国强: 有一回一个人问我一个问题,sql的执行计划很奇怪,可能在9203和9204上是完全不同的一个效果,然后我还让他把英文的数据给我导出来一份,那份数据我现在还留着,我就会在我的环境下来测试这到底是一个什么样的效果,所以我觉得另外一点,对于学习来说是非常重要的,就是一个求知的欲望,大家要有一个很好的求知欲望,你有探索这个这个的兴趣、冲动,对知识的一种渴望,然后你才能够不断地去探索,我觉得这个是非常重要的。
楼方鑫: 其实现在很多人只是怕Oracle,觉得Oracle太复杂了。
盖国强: 我觉得跟一个人的学习态度是有关系的,你的态度,你的求知,比如说一个DBA,我们说一个好的DBA你必须要研究这个存储和操作系统,你都要去研究,你才能更好地掌握和管理这个数据,但是很多人不是这样的,他觉得这个操作系统跟我没有什么关系,出了一点问题把SA喊过来,改一个参数,SA一个人来做这个事情,这样的话,我觉得从公司层面来说是另外一回事儿,但是从个人求知的角度来说这不是一种好的态度,你必须是对这些知识具有一种很active 。
张乐奕: 确实Oracle越来越复杂,8i的时候,以前是五个进程多清爽,现在……!
盖国强: 你这个说起来,就是说什么样的公司用什么样的产品,这有一个很重要的概念,一个前提,比如阿里巴巴他们还用9i,自己也调整优化的很好,但是你可能觉得这个后台这么多的进程在跑,还是影响我,对不对? 但是没有那么多资深的DBA在那儿管理,能不能用好,没有一个比较好的DBA,可能8i你会用得很差。所以看现在很多用户都用Oracle7,基本的功能都能够满足我的需要。
主持人: 好了,由于时间的关系,我们今天的讨论就到此结束。我记得上次跟小盖我们在一起时,说过这样一句话, “Oracle数据库就像一座迷宫,尽管如此,在这个迷宫当中,我们总是能够找到答案和出路,总是能够找到惊喜。”
今天的Oracle Open World大会,我们看到是一个Open的大会,那么我们也希望Oracle这个数据库更加的开放,让我们这些痴迷的开发者们,在这个迷宫里面永远能够找到快乐! 好,感谢大家!