eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 蓦然回首 万水千山已过 | Blog首页 | 感谢杨廷琨加盟恩墨科技 - 恩墨科技 成就所托 »

他山之石 可以攻玉-《海量数据库解决方案I》

刚刚从出版社得到消息,年初修订的《海量数据库解决方案I》一书已经出版,这本书的修订工作成就了我和Kamus、崔华的合作友谊,我是满怀着欣喜和期待来等待这本书的到来。

在这本书的序言中,我们曾经写下了一段文字,来继续和这本书的一些缘分和故事,我先在这里和大家分享一下我们的心得与体验吧。

他山之石 可以攻玉-《海量数据库解决方案I》


经过三个月的艰苦努力,我和张乐奕(Kamus)、崔华(dbsnake)最终完成了《海量数据库解决方案I》的校订工作,能和两位好友一起字斟句酌逐字逐句的将韩国同仁的名作校订引入中国,于我们于书都是一种缘分与机缘,在校订过程中恩墨科技的罗晓程也协助我们做了大量的审阅文字工作,在此要深深的表示感谢。

在各位读者开始阅读本书之前,我们将接触、接受、校对这本书的感触与来龙去脉记录一下,供大家参详。

 

Eygle - 推动技术交流分享是一件功德

 

最早接触到这本书是在2009年,韩国En-Core公司的朋友找到我,说他们有一本书已经翻译好,将要在中国出版,希望我能够帮忙审阅并做些推荐,当时我正在新华社进行我的一个项目实施。

我当即表达了我的几个观点,第一,如果是一本好书,我乐于阅读并做评荐,这是我的荣幸;第二,凡是促进技术交流与分享的事情,我都乐于支持并做出力所能及的工作;第三,我愿意义务的去做这样一件事情

韩国的朋友非常愉快的表达了对我的谢意,并向我介绍了这本书,在韩国数据库界,该书的作者李华植是教父级的人物,而该书更是圣经般的读物,有累计几十万册的销量,读者不仅仅是数据库从业人员,各类技术人员都将之奉为经典和必读。

我不了解韩国,也不懂韩文,但是我相信了他们的说法,并且向韩国的同仁表达了敬意。所有坚持不懈、执着于行的人,都值得我们尊敬。而如果能够促进亚洲数据库界的一些交流,那也是一场功德。

就这样我欣然答应了他们的请求,并期待看到这样一本书的出版。

 

当我拿到书稿时,一些新的问题出现了,我发现译文太注重韩文的语言习惯,对于中文读者,阅读起来会非常吃力,甚至会出现难于理解的局面。我建议他们做出进一步的修订,否则很难传达出作者的本意。基于双方的理解,他们诚挚的邀请我来完成这个校订工作,而经过慎重考虑之后,我认为一个人还不够,我需要一个团队,张乐奕和崔华成为了我的伙伴,这个团队通过了他们的考察,就这样,我们接下了这个比想象还要艰辛的工作。

 

从译者的传达,去理解作者的本意,这本就是隔了一层,再加上韩文和中文的语言习惯不同,修订的工作极其艰苦,经常每个小时只能完成2~3页的校对修正,然后我们三个人还要交叉校订。这期间的小插曲是,由于张乐奕是日语专业的出身,他能够从该书的日文版借鉴不少东西,互相佐证。

就这样,三个月的时间转瞬即逝,我们的工作也已经接近尾声,我可以说的是,我还从来没有这么认真、字斟句酌的去读一本书,而且是反反复复的阅读,这样阅读的一个好处是,我对这本书的理解和领会比任何其他一本书都要多。

书稿在手里就没有完美的一刻,我们还在不停地修正,直到出版前的最后一刻,我们真挚的希望能够有更多的读者喜欢它。虽然这期间我们已经做出了大量的努力,但是我们仍然不知道读者会如何评价,所以我一直心怀忐忑。

 

关于这本书,可以说的是,我从中学到了很多东西,作者的很多理念让我受益匪浅,这些学到的东西将会指导和影响我以后的学习之路。

首先这本书并不是仅仅写给数据库从业人员的,作者期望所有对数据库感兴趣的读者都可以流畅的阅读,透彻的理解,所以作者在本书中通过大量的类比、比喻将艰深的数据库知识与生活对应起来,使得平时很多不易理解的概念变得浅显。基于深刻的积累,作者能够从不同角度对技术进行概括和阐释,往往有让人豁然开朗的别样感觉,比如在讲到局部范围扫描时,作者用排队等车用户的顺序以及出租车的出发时间进行类比譬喻,精到而浅显,任何人都可以一目了然的理解后面蕴含的复杂技术原理,这或许就是作者的本意,技术原本就是对完美生活的引申与抽象

又比如在战略性索引构建一章,作者提到"只要为各个索引分配合理的任务,即使需要创建大量的索引也应当果断地作出决定",为索引指定任务使得索引拟人化的变成了一个工人,有明确任务而不是平时我们茫然的创建索引,作者依据这样一个思想展开了整章的内容,这也和我们的优化思路不谋而合,优化到极致的数据库,我们应当知道哪些SQL查询会使用到哪些索引,而索引又是为哪些查询服务的,必须详尽了解数据库与应用,才能对应用系统了如指掌、有的放矢。

读这本书,我们更多的是去理解作者高屋建瓴的数据库设计与优化思想,而不应该拘泥于具体的技术细节,比如作者所说的局部范围处理、战略性索引构建等,这些概念更多的是将细节的技术原理上升到生活道理与常规的思考,原本很多复杂的技术设计都是可以源自生活中浅显的道理,将技术、生活与常规的思考联系贯穿起来,在我看来,是作者给我们最大的教益。

 

最初的一句承诺,导致了数月的锲而不舍,这期间的艰苦也让我们每个人都有所收获,当然更大的收获是我们几个朋友之间的友谊;感谢作者 李华植 带给我们经典的作品,感谢译者郑保卫,正是他的初始翻译才使得本书的中文版得以和广大读者见面,感谢本书编辑博文视点的张春雨,他坚持不懈的沟通与推动最终促成了本书的最终出版。

愿这本书能为大家带来一些与众不同的感觉与收获!

                                                                                             盖国强     2010722日星期四

 

Kamus -书读百遍其义自见

 

在今年(2010年)一月份的时候,eygle跟我说有一本韩国IT届教父级的人物撰写的在韩国狂卖30万册的数据库技术书籍,出版社希望引进到中国来。而这本韩文书已经有了完整的中文译本,只是这份中文译本需要一些更熟悉Oracle数据库技术的人来进行再次修订。当第一次听见这个事情,我以为那就仅仅是校对,对于错别字的校正,对于技术术语把握的问题,我没有想到在真正开始着手以后会是如此的困难。

 

时间过了2个月,到今年的3月份,正式拿到书稿,当开始修订我负责的第三章时,才发现这是一项巨大的工程,并不能说初始翻译很不好,实际上已经很不错了,技术术语基本上也都准确,但是整段整段的句子读下来,却发现读一遍不明白在说什么,读两遍仍然似懂非懂,读三遍可能才知道哦应该是这个意思。而第三章是占全书比例最大的章节,有一百五十多页,而即使我全神贯注的去修订,进度也仅仅能够达到一个小时两到三页。之前我工作的环境是在客厅,前面是电视机,而为了修订这本书我不得不将工作环境转移到书房,因为哪怕是一点点声音的干扰也会让进度更加缓慢。这是我之前没有遇到过的情况,我一向自诩可以一心多用,但是修订这本书我遇到了极大挫折。究其原因,应该是初始翻译有不少是通篇大量同词语替换的情况,很多的修饰词都不符合中文的语言特点,而这些修饰词极大地干扰了阅读体验。另外一个重要的因素就是李华植先生在写作这本书的时候,对于很多他想极力阐述给大家的观点都辅以了大量的比喻,用出租车,用运动员,用下棋。。。而这些比喻的生动让阅读者会情不自禁地将自己代入这个环境,去仔细琢磨这个比喻的后面想表达的真实含义。

 

为了能够更准确地理解李华植先生原文的意思,我甚至找来了本书的日文译本出版物(我的大学本科学了四年的日语),在我实在不明白原中文译本的含义时,我会去对照日文是如何翻译这段。有趣的是,通常这很有效果,我甚至根据日文译本在中文译本中添加了一些文字(也许是原中文译本遗漏了),以便于读者能够更好地理解文章含义。

 

很令人欣喜的是,在修订的后期我已经能够逐渐跟上李华植先生的思维,甚至对于他的比喻已经心有戚戚,修订的速度也得以提高。更令人欣喜的是,如此字斟句酌地阅读李华植先生的这本著作,让我在Oracle数据库性能优化的思想和策略上都学到了很多东西。"书读百遍其义自见"很能贴切地描述修订这本书的过程。

 

我,eygle,崔华在三个月中交叉修订,我修订完的第三章eygle会再次修订一遍然后传递给崔华,崔华再阅读一遍,同样eygle修订完的第四章会给我再重新阅读。我们如此努力,只是希望在最后这本书呈现在大家面前的时候,是一本符合中文阅读习惯的、不需要再像我们这样费劲就能够有所收获的数据库技术书籍。这是辛苦的三个月,但同样是很有意义的三个月。

 

对于每一位能够将自己的经验写下来分享给读者的作者,我都深深敬佩。我个人虽然一直没有这样的耐性坐下来去真正写一本书,但是我也一直在努力创造一种乐于分享、收获快乐的环境,创办Oracle中国用户组(www.acoug.org),每个月举办免费的活动,邀请演讲者来做技术分享,我一直在努力做自己力所能及的事情。

 

最后,即使我们如此修订这本书,一定还是会有疏漏的地方,甚至是词不达意或者难以理解的部分,希望读者朋友们能够包容。但是更重要的一点是,在你觉得无法理解的时候,歇一段时间再去读第二遍,第三遍,要知道在我们修订的时候也是这样,"书读百遍其义自见"。

 

-张乐奕(Kamus         201074

 

Dbsnake - 循序渐进始有成

 

三个多月的时间一晃就过去了,我们也终于完成了《海量数据库解决方案Ⅰ》的修订工作。

当初kamus打电话找我,问我是否有兴趣跟他和eygle一起去修订一本韩国书的时候,我几乎是不假思索的马上就答应了,当时其实我并不知道要修订的是什么书,也不知道具体的工作量会有多少。满口答应只是因为这是eyglekamus找我----我没有理由拒绝。

 

修订这本书的时候恰逢我跟进的一个项目上线,白天项目的事情已经是忙的焦头烂额了,修订的工作只能够放在晚上做。等到我真正开始修订的时候,我才发现工作量真的是太大了,因为几乎是一直处于一种字斟句酌的状态,所以修订的进度非常缓慢,我常常是一个小时才能修订两到三页。怎么办?我怎样才能提高修订的速度,以至于不耽误整个团队的进度。没有别的办法,我只能压缩我自己的睡眠时间,于是每个工组日我基本上都是12点左右入睡,早上5点半起床,就这样,坚持了三个多月。

 

回头想想,我为什么能够坚持下来?除了要信守我自己的承诺之外,另外一个很重要的原因就是我对Oracle数据库太感兴趣了,再加上这本书确实是一本难得的好书!我在仔细修订这本书的过程中已经感觉了到了自己的进步,这真的是一件令人非常兴奋的事情!

 

常常有朋友问我如何才能学好oracle?我这里想说的是我也不知道该如何才能学好,因为oracle我也只懂一点点。但是当我看到李华植先生将其20年的数据库经验毫不保留的写在《海量数据库解决方案》系列中的时候,我觉得我还是应该把我的一点经验写出来,这样也许就能够帮到更多的人。

 

现在我回想起来,我的oracle的入门过程大致是分为四个阶段。

第一阶段:从2004年到20068月,我用了大概两年多的时间断断续续的看完了OCP 9i的一套培训教材(一共4本书)。很惭愧,用了两年多的时间才看完。但是大家要理解我,我本科和研究生都是学数学的,2004年以前连最基本的SQL都不会写,而且那段时间项目的开发还是有一定的工作量,我基本上只能够利用业余时间自学。

 

第二阶段:从20068月到2008年年初,因为那时候我的Oracle已经有了一点基础,所以我开始大量的看oracle的各种官方文档,但是这些文档我大都只是过了一遍,唯一的例外就是《10gR2 Concepts》和《Oracle 10gR2 Clusterware and RAC Administration and Deployment Guide》,这两本书我都分别看过两遍。

 

第三阶段:从2008年年初到现在,我开始在metalink上大量阅读文章,在我真正开始接触metalink的时候我才发现,哇赛,这是多么精彩的一个世界!在我看来,metalink就是最好的老师了!直到现在,我工作的第一件事情依然是把metalink打开,平常没事就泡在上面,迄今为止,我已经在metalink上看过超过1500篇文章了。

 

第四阶段:从20093月到现在,我开始仔细阅读DSI(Data Server Internals)教材,DSI其实我看的并不多,迄今为止,我只看过了如下几本:

DSI303-Advanced Backup,Restore and Recovery Techniques

DSI401-Dumps Crashes and Corruptions

DSI402-Space and Transaction Management

DSI402e-Data types and block structures

DSI403e-Recovery Architecture Components

DSI404e-query_optimizer

DSI405-Performance Tuning

总的感觉是DSI没什么,真的没有我想像的那么难。但是这里我想说的是DSI应该在你具有一定的基础后才开始看,早看反而无益!

 

前前后后六年的时间,当我看完DSI405后,我真的觉得自己的oracle已经入门了。其实细心的朋友已经可以发现,我的Oracle的入门的过程用一句话来概括就是"循序渐进"。

当我看完DSI系列并且在我的个人网站(www.dbsnake.com)上撰写了100多篇文章后,我终于迎来了属于我自己的机会----我结识了eyglekamus,并且有机会和他们一起开始迎接许多梦寐以求挑战。

 

一直以来,eyglekamus都是我努力的目标,修订的这三个多月虽然辛苦,但是能和自己的知音益友一起做事情,于我而言是非常荣幸也是非常开心的事情,再辛苦又算得了什么?

这次我修订了第一部分的第一章、第二章和第二部分的第二章,交叉修订了第一部分的第三章。在修订过程中,我付出了大量的努力,以自己所学、所知去理解传达作者的真知灼见,然而再怎么尽心竭力,我们的工作也难免存在种种不足,但是我确确实实已经尽力,剩下的只能交给读者去评判吧。

 

虽然这次修订的过程是极其痛苦的,在殚精竭虑之后常常会感觉很崩溃,但是如果能有机会让我继续修订《海量数据库解决方案Ⅱ/Ⅲ》,我非常愿意再多崩溃几次。

 

 

 

----    崔华(dbsnake)         2010629

 

 

好了,这就是几位校对者的心声,现在这本书已经翻阅了山川、民族与语言的障碍,来到中国读者的面前,让我们一起来阅读和领会一下来自亚洲的数据库界的声音吧!

 



历史上的今天...
    >> 2008-10-28文章:
    >> 2006-10-28文章:
           怀柔百泉山 秋意方正浓
    >> 2005-10-28文章:
           EMC CX500再扩容量2T

无觅

By eygle on 2010-10-28 15:41 | Comments (13) | Books | 2648 |

13 Comments

此序做的好,期待此书!

何时上市?期待

我今天直接去出版社买了这本书,就在万寿路附近,期待很久了,网上估计还得几天才有卖

恭喜又出新作。看了过程,不亚于写一本新书~

这本书会不会放在淘宝店卖,会的话,我就不去书店了

请问是不是还有续作?”海量数据库解决方案-2“,我看原作者在书的最后说还有更另人惊奇的优化方法在第二部里介绍!

eygle,你好
最近在学习你翻译的《海量数据库解决方案》这本书,其中在第52页第二行:
“如果没有相同的值,则从比所要查询的数值大的数值中选择最小的值,然后向该最小值所在行中的dba所指向的索引块移动。”
根据我从前面的理解来看,分支块中存储的应该是它所拥有的每个叶子块的开始键值和DBA,其中开始键值我的理解应该是每个叶子块中的所有键值里的最小值;这样的话,上面那句话就有问题了,就应该是:比所要查询的数值小的数值中选择最大的值,然后向该最大值所在行中的dba所指向的索引块移动才对。
希望能得到你答疑解惑。
谢谢!


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com