有一天明白了事务的acid属性,明白了分布式事务,事务是怎么实现的,才算明白为什么Oracle的每一部分为什么要那样设计。从此以后我觉得豁然开朗,提升了一个档次,知道了结构上Oracle为什么会这样设计,直到现在的RAC,各种备份方法。看了JBoss的Marc Fleury的blue自传,他说"cache is the king",尽管以前都说缓存可以提高性能,Marc的话才让我明白了为什么,知道了CPU,CPU cache,Memory,Disk,Network之间的关系,每一层何尝不是下一层的缓存。 就这样,我清楚DBWR,LGWR,CPKT,semphare,Latch,DB BUFFER、Log Buffer、log file、data file、Control file、lock是如何精确协作的,block里面是什么结构,事务如何实现,各种等待事件什么会发生。 结果直到去年8月的一天,突然要和公司的同事一起去为一家单位做异地容灾方案,各种原理我都清楚,只是用的oracle 8.0.5和HP-UX 11i的组合,硬件是吓人的hp superdome。oracle 8.0.5版本我没有用过,虽然整个过程很顺利,我还以为oracle 8.0.5还要用x window来图形安装,像个笑话。开始苦苦实践,身经百战才能够所向披靡。 接着我像很多人一样,分析了Oracle物理实现方面的问题,特别是control file,data file,log file,各种文件的结构和关系,加上原来的不少经验,备份与恢复方面的各个概念和内容、为什么要这样做,很easy。这是我的又一次提升。 更接着我从Oracle体会到了Hash算法、B+树、List的作用和实现,如何实现高速查找的,虽然书本上早就看过。这个时候我也明白了Oracle是如何解析和执行SQL语句的,于是虽然我还看执行计划,还看执行计划所化的IO代价和CPU代价,但是和过去的感觉已经不可同日而语了,这又是一次提升。 又是在去年那段时间,我看了scaling oracle 8i这本书,明白了硬件结构上很多东西,加上这两天明白了Linux内核是如何实现的,特别是如何调度进程、如何实现semphare,latch,lock、如何测量CPU和IO性能。以前所不能够理解的东西,如java和weblogic调优方面,一下子明白了很多,我觉得这是我从事IT行业技术上的最大提升。 |
正在阅读:我的Oracle之路我的Oracle之路
2005-09-19 10:16
出处:
责任编辑:moningfeng
键盘也能翻页,试试“← →”键