我接触Oracle是在本科毕设,当时顺着研究生导师的方向,写的是专利信息互联网爬虫。从各个专利局采集的专利信息,就需要进行存储,以前只用过SQL Server,所以打算尝个鲜,用Oracle 9i。

当时刚买笔记本,NEC的,内存好像是512MB,Oracle软件安装起来,卡卡的,每次风扇都在响,而且都是禁止他随机启动,否则开机就很费劲了,只是感慨,这真是“大型数据库管理系统”。

当时不懂的问题,主要从三个途径了解,搜索引擎、技术论坛、技术图书。当时的技术论坛,还是比较火的,itpub、csdn、百度知道,发个帖子,很快就会有人回,碰到一些好人,还会加上MSN、QQ,继续追问请教,很多人都已经在各自领域成为了大师和专家。我看的第一本Oracle相关的图书,就是如下这本eygle写的书,

学习Oracle的三种境界_编程语言

这是我之前所看过的一些Oracle图书,仅供参考,

《我读过的一些Oracle相关的图书》

盖老师在Oracle领域对我来说一直是神一样的人物,当时的帅小伙,现在更加成熟了,虽然我在能力上很难企及了,但是向他学习的这个方向,还是很正确的,不仅仅是技术,尽管过程艰辛,但是看着灯塔,就会充满力量。

我在很多次分享中都会引用eygle这篇文章中提到的学习Oracle的三个境界,其实不只是Oracle,对其他领域的学习都是适用的,仔细品味,确实是这个道理。


经常有朋友会问,应该如何学习Oracle,怎样才能快速提高?我把自己的一点心得写在这里,供大家参考。

其实学习任何东西都是一样,没有太多的捷径可走,必须打好了坚实的基础,才有可以在进一步学习中得到快速提高。

王国维在他的《人间词话》中曾经概括了为学的三种境界,我在这里套用一下:

古今之成大事业、大学问者,罔不经过三种之境界。
"昨夜西风凋碧树。独上高楼,望尽天涯路。"此第一境界也。
"衣带渐宽终不悔,为伊消得人憔悴。"此第二境界也。
"众里寻他千百度,蓦然回首,那人却在灯火阑珊处。"此第三境界也。

学习Oracle,这也是你必须经历的三种境界。
第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。

这里,注意一个"尽"字,在开始学习的过程中,你必须充分阅读Oracle的基础文档,概念手册、管理手册、备份恢复手册等;OCP认证的教材也值得仔细阅读。打好基础之后你才具备了进一步提升的能力,万丈高楼都是由地而起。

第二层境界是说,尽管经历挫折、打击、灰心、沮丧,也都要坚持不放弃,具备了基础知识之后,你可以对自己感兴趣或者工作中遇到的问题进行深入的思考,由浅入深从来都不是轻而易举的,甚至很多时候你会感到自己停滞不前了,但是不要动摇,学习及理解上的突破也需要时间。

第三次境界是说,经历了那么多努力以后,你会发现,那苦苦思考的问题,那百思不得其解的算法原理,原来答案就在手边,你的思路豁然开朗,宛如拨云见月。这个时候,学习对你来说,不再是个难题,也许是种享受,也许成为艺术。

所以如果你想问我如何速成,那我是没有答案的。

不经一番寒彻骨,哪得梅花扑鼻香。

当然这三种境界在实际中也许是交叉的,在不断的学习中,不断有蓦然回首的收获。

我自己在学习的过程中,经常是采用"由点及面法"。

当遇到一个问题后,一定是深入下去,穷究根本,这样你会发现,一个简单的问题也必定会带起一大片的知识点,如果你能对很多问题进行深入思考和研究,那么在深处,你会发现,这些面逐渐接合,慢慢的延伸到oracle的所有层面,逐渐的你就能融会贯通。这时候,你会主动的去尝试全面学习Oracle,扫除你的知识盲点,学习已经成为一种需要。

由实践触发的学习才最有针对性,才更能让你深入的理解书本上的知识,正所谓:"纸上得来终觉浅,绝知此事要躬行"。实践的经验于我们是至为宝贵的。

如果说有,那么这,就是我的捷径。

想想自己,经常是"每有所获,便欣然忘食",兴趣才是我们最好的老师。

Oracle的优化是一门学问,也是一门艺术,理解透彻了,你会知道,优化不过是在各种条件之下做出的均衡与折中。

内存、外存;CPU、IO...对这一切你都需要有充分的认识和相当的了解,管理数据库所需要的知识并不单纯。

作为一个数据库管理人员,你需要做的就是能够根据自己的知识以及经验在各种复杂情况下做出快速正确的判断。当问题出现时,你需要知道使用怎样的手段发现问题的根本;找到问题之后,你需要运用你的知识找到解决问题的方法。

这当然并不容易,举重若轻还是举轻若重,取决于你具备怎样的基础以及经验积累。

在网络上,Howard J. Rogers最近创造了一个新词组:Voodoo Tuning,用以形容那些没有及时更新自己的知识技能的所谓的Oracle技术专家。由于知识的陈旧或者理解的肤浅,他们提供的很多调整建议是错误的、容易使人误解的,甚至是荒诞的。他们提供的某些建议在有些情况下也许是正确的,如果你愿意回到Oracle5版或者6版的年代;但是这些建议在Oracle7.0,8.0或者 Oracle8i以后往往是完全错误的。

后来基于类似问题触发了互联网内Oracle顶级高手的一系列深入讨论,TOM、Jonathan Lewis、HJR等人都参与其中,在我的网站上(www.eygle.com)上对这些内容及相关链接作了简要介绍,有兴趣的可以参考。

HJR给我们提了很好的一个提示:对你所需要调整的内容,你必须具有充分的认识,否则你做出的判断就有可能是错误的

这也是我想给自己和大家的一个建议:学习和研究Oracle,严谨和认真必不可少

当然你还需要勤奋,我所熟悉的在Oracle领域有所成就的技术人员,他们共同的特点就是勤奋。

如果你觉得掌握的东西没有别人多,那么也许就是因为,你不如别人勤奋。

要是你觉得这一切过于复杂了,那我还有一句简单的话送给大家:不积跬步,无以至千里。学习正是在逐渐积累过程中的提高。

虽然盖老师的这篇文章已经很久了,但是即使放到现在都是很实用的。的确,现在和上学的时候确实不太一样了,可能是受了各种外部客观环境的影响,往往都很浮躁,很难沉下来,踏实做技术积累,但我身边还是有很多“逆道而行”的老师和朋友,他们都是我学习的目标,可能这就是初心。因此,当碰到挫折时,阅读一下上面的文字,给自己个暗示,坚定努力的方向,就会更加接近自己的目标,这个就是力量。