暂无图片
暂无图片
8
暂无图片
暂无图片
暂无图片

慢有时候是最快的

白鳝的洞穴 2024-10-15
985

这个时代太快了,快得让人无法慢下来。快餐文化是我们这个时代的主要颜色,很多朋友在厌恶预制菜的同时却无法忍受点菜后等上半小时让厨师能够更够精心为你准备一道佳肴。前几天我推荐几本学习Oracle的书,其中提到最多的还是官方文档。有些朋友留言说看书太慢了,还是希望我推荐一些简短一些的攻略。

不知道有多少朋友玩过《金庸群侠传》,我在大学的最后一段时光里,玩得最过瘾的莫过于这个游戏。这个游戏中需要不断练级,一方面是提升自己的LEVEL,另外一方面,所学的武功也需要升级。武功选择时有一个选项是“野球拳”,也就是小孩子打架用的那种没有武功门派的野拳。野球拳在没有练到最高级别的时候就是个垃圾,杀个普通NPC都要让自己流一地的血,不过如果升级到最高级别,打终极BOSS就易如反掌了。我是在打了N次终极BOSS无果后得到这个消息的,那时候急着看最终的结果,没有去打小怪物升级这个技能,直接黑了游戏数据把级别升到最高。于是不太费劲就把大BOSS给KO了。后来我重新玩了一次这个游戏,从最开始就使用只使用野球拳,那次游戏经历确实很锻炼人的耐心,有几个关键关口,我只好黑了金币数据,买了一堆大补丸之类的道具,才勉强过关。

作为DBA,系统地看书学习和练野球拳有些类似,刚开始的时候感觉收获没有直接看攻略快,甚至会觉得十分痛苦。不过当你系统地完成学习后,你的知识运用能力肯定远高于仅仅通过攻略去学习提升。因为系统性地学习不仅仅能教会你处理某个问题的方法,还会让你明白这个方法为什么会有效。这对于你分析解决一些以前未知的问题,或者在你学习的攻略中并未包含的问题的时候,能够更好地自主思维。

以前我遇到过一个DBA,当我和他讨论这个观点的时候,他不以为然地说,你那个时代上网不方便,所以你需要掌握这种举一反三的能力,我们不需要了。有问题,直接上MOS去搜就行了,不需要你说的这种系统分析能力。这个观点也是他经常找错根因的主要原因,他善于搜索知识库,但是无法从类似的知识中找到适合当前案例的内容。

系统地学习比起快餐式的攻略来说确实要费劲不少,也会让学习过程变得很慢,不过我一直认为是十分有价值的。二十年前,有不少年轻DBA十分郑重地找到我,跟我学习Oracle,我一般会让他们先去看《Oracle Concepts》,如果他连这本书都看不进去,或者看不明白,我是不会花太多的精力去指导他的,因为我工作的思路是基于对基础的系统理解的,不能通读这本书,他们很能接受我的观点。

我曾经花了一个多小时和一个甲方的“高手”探讨每分钟采集一次表空间使用率对系统的危害,因为他觉得访问几张只有几百条记录的系统视图是无害的。而我花了好长时间才让他接受扫描dba_free_space视图是很消耗系统IO的,这些认知的差异,其根源是他和我对Oracle存储结构的基础知识的认知差异导致的。

放到相对简单的非Oracle数据库中也是如此,如果你不懂FULL PAGE WRITE,就不会清楚在一个IO性能不佳的系统中增加CHECKPOINT的周期时间的重要性,如果你不清楚PG astore和vacuum的原理,就不会清楚为什么在PG数据库里多余的索引比在Oracle数据库对性能的影响更大。

如果你只想学会一些数据库的操作,那么可能互联网、攻略、大模型就能让你完成手头的工作了,你可能不需要费劲巴拉地去看书做系统的学习。就像前几天我写了篇推荐几本书的文章的时候,有DBA朋友给我留言说他从来没系统看过这些书,但是不妨碍他通过了OCP考试,并且现在工作干得不错。如果你想成为真正的高手,成为专家,仅仅依靠碎片化的知识是不够的,系统性的学习还是十分必要的。

如果你想成为一个Oracle的高手,那么沉下心来,花上两三个月,认真地看上一两遍《Oracle Concepts》,肯定会让你受益匪浅的。现在的慢,是为了今后的更快。我觉得,在成为专家的道路上,必须耐得住寂寞去系统性地理解最基础的原理,这种时候,慢可能是最快的。

文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论