用了三周左右的时间将SQL语言艺术这本书看完了,Stephane Faroult & Peter Robson大师的作品不是像我这种能写几条再简单不过的SQL、会安装一下Oracle软件的人能一下子完全明白其中精髓的,但也感觉收获了不少,大大开阔了知识面,对调优又有了一些新的体会。这不是一本cookbook,也不仅仅只局限于ORACLE数据库的书,它偏向于Database、SQL原理,对于不同的数据库处理SQL的一些原则和技巧,以兵书的形式贯穿全文。确实,在某种程度上DBA真的像战场上的统领,掌控全局,成功与失败就在一线之间。这本书给我印象最深是第3、7章节。
第3章—战术部署:建立索引
说到索引,我想从事这行的XDJM们应该都知道(要地球人都知道还差那么一点),它让无数人欢喜过也让无数人头疼过。今时不同往日,随着业务,系统架构越来越复杂,那个曾经只需要加个索引又或者简单修改重建索引,索引是万灵药的年代已一去不复返了。任何事物都具有双重性,有得就有失,索引可以让查询变得更快也可以变得更慢,如何找到“切入点”做到有的放矢不是件容易的事情,要灵活运用就对DBA提出了更高的要求,熟悉业务,确定高质量的搜索条件是不能不做事。用一句话告诫自己:“建立索引必须要有充分的理由,不论外键还是其它字段都一样。”
第7章—变换战术:处理层次结构
大家都应该有过这样的经历:某些SQL在数据量少的时候效果令人很满意,随着数据量不断加大,执行的效果就开始像老爷车一样慢。统领应该很清楚:军—>师—>旅—>团的军队结构,规范化很重要。有时候把系统搞得太复杂,表面上看起来多么的高深,还不是一般人能得懂的,最后连一些结构的设计连3NF都不满足,系统性能能好到哪里去呢?战术固然重要,战略更不可忽视。
最后用一句话勉励自己:
和所有语言一样,要精通SQL需要时间、经验和个人天赋。革命尚未成功,同志仍需努力!
接下来的时间,计划将EYGLE大师的三本个人杰作综合精读第二遍
重点不再是命令、语句怎么写,而是尽量去揣摩大师创作时的意境,希望能有更大的收获。
-The End-