Oracle DBA手记3:数据库性能优化与内部原理解析

盖国强 杨廷琨 等编著

ISBN978-7-121-14479-0  

2011年9月出版

定价:49.80 元

16开

300页

宣传语:Oracle逻辑读写深入分析

        面向程序员的数据库访问性能优化法则

        Oracle的Latch优化深入解析

        隐含参数与Library Cache、Shared Pool Latch原理

内 容 简 介

本书由多位数据库技术专家合著而成,融合了各行业DBA 的工作经验与思考,包含了精心挑选的数据库性能优化与内部原理解析案例。内容涵盖“DBA 手记”,以手记形式记录了DBA 们的工作点滴、经验分享;“SQL 与SQL 优化”,分别讲解了SQL 的执行计划,SQLProfile 的使用,以及Oracle 中的NULL 值解析;“内部原理与优化”,分别介绍了Oracle 的索引分裂、TX 锁等待、闩锁原理、逻辑读写、隐含参数与Latch 原理等的内部操作。

本书的主要内容以原理分析、内部实践、故障解决为依据,将Oracle 数据库的深层技术层剖缕析、抽丝剥茧地展示给读者。希望能够帮助读者加深对Oracle 技术的认知和理解,并将这些技术应用到实践中去。

主创寄语

我们为什么学习Oracle?也许是兴趣,也许是想解决工作中的问题,也许是认为DBA 职业更稳定,只要精通Oracle就可以拿到不错的薪水,可以一劳永逸。每个人都有不同的Oracle 情节。我是这样开始的:我们以前的数据库性能很差,由系统工程师管理,大部分系统工程师都喜欢通过调整配置参数优化,因此也想方设法去调整Oracle 的参数,最终收效甚微。也许因为我是程序员出身,我喜欢从代码层面去分析问题,最后通过索引与执行计划解决了问题,从此对Oracle 产生了兴趣,因此开始了漫漫Oracle学习的长路。我并没有想过自己去当一名职业DBA,所以Oracle 的学习总是断断续续,多半为了解决工作中的问题,直到后来想专注数据库方向时,才开始花更多的精力在数据库上面。因为了解自己很懒惰,所以我喜欢给自己一些压力,于是开始报考国家认证数据库工程师资格认证,系统地学习了数据库基础知识,后来又参加了OCA 和OCP考试。系统地学习Oracle 知识,现在专注于数据库设计与开发研究。一路走来,感触良多,有几点体会与建议:

1.你想做什么,就去学什么,时间总是可以挤出来的;

2.你需要了解自己,给自己设立可行的目标,否则会永远在原地踏步;

3.你能短时间掌握的知识往往也不能长久有用,知识的价值也符合市场经济规律;

4.理论与实践需要交互学习,当感觉理论很枯燥时,就去实践,当感觉实践很无助时,去补充理论,每一次变化都会让你有不同的升华。

——叶正盛

要在Oracle 数据库技术领域不断地进步,需要不断地学习,同时借鉴他人的经验,但是我想更重要的是我们需要独立思考,特别是通过独立思考解决性能问题和其他故障,不但会有成就感,而且在技术上的理解和领悟将会更多。希望本书中的文章和案例,能够起着抛砖引玉的作用,让读者朋友们跟随我们的思路,去思考如何解决这些问题,通过思考,形成自己的知识,使自己取得进步。

——熊 军

在学习Oracle 的过程中我个人最大的体会就是“有兴趣才会有真正的动力”。这些年来,多少次我所有的同事都走了,偌大的大厅只剩下我一个人在学习,我想,如果没有强烈的兴趣,我是走不了这么远的。

——崔 华

在繁华浮躁的时代,凡能静心著文者必有别样之情怀,我对这些著文传道者满怀敬意,也愿读者们能从中获益。

——恩墨科技创始人、OracleACE 总监盖国强

前 言

在这样一个春暖花香的季节,我完成了本书的编辑工作,希望这本书到达读者手中时,仍有着这个春天的气息。

本书是《Oracle DBA 手记》系列的第三本,也是我的梦想的延续。源于最初的一个念头,结果就是数载的不停不懈,我常常鼓励自己:坚持一下,再坚持一下。也正因为如此,我才能够一步一步地走到今天,也就有了DBA 手记之三。

这本书中收录了我的一篇文章,其中讲述了在2010 年遇到的一个案例,那是我职业生涯中遇到的最为复杂的一个项目,在诊断过程中,我几乎调动了自己所知的所有知识,并进一步地灵活运用,最终帮助客户解决了纠缠多年的性能问题。记得最初在微博上说,这个案例就足够写一本书了,当时周老师紧跟着说,那就交给我出版吧。时过境迁,周老师已经离开博文视点,去开创自己的出版事业,而我在接二连三的项目中,也失去了最初奋笔疾书的热情,所以就零星写成了这篇短文,将这个案例中学到的一些知识与大家分享出来,只是没有更进一步去细化当时的曲折和细节了。生活和技术都是一样的,想到了就要做,否则就可能由当初的熊熊烈火蜕化成星星之火以致泯灭,我在此充当了一次反面教材。我要感谢在这个项目中一起奋斗的朋友们,在一次次猜测、实验和质疑中,我们最终发现了真相。我很怀念那段时光和殚精竭虑的过程。

我要特别感谢冯春培同学,据我所知,当下要他落笔已经是难上加难,再加上其掌上明珠呱呱坠地,期间的欣喜和忙碌足以让他放弃其他一切琐事,而当我相约其稿时,他汇集和整理了自己多年的心路历程,冠以“人生就是如此”的座右之铭,告诫我们,人生远远不止如此。回想当年共处于同一屋檐之下,而今各已儿女绕膝,白驹过隙,沧海桑田,还真是不过如此。

崔华和熊军兄弟两人,虽然与我相识于江湖,但是我们一见如故,其各怀一身绝艺,于数据恢复领域叱咤南北,联手开拓了一片恢复沃土;老熊的ODU 曾经帮助了大量网友无偿地恢复数据挽救业务;崔华不断的技术探秘,使得Oracle 的种种恢复难题迎刃而解。而他们多年对我的无私支持、勤于分享也为广大技术爱好者带来了福音。今年崔华和熊军双双通过了Oracle ACE 的提名,这实在是实至而名归的又一体现。

姜龙与我结识于上海,其接触Oracle之早,出入网路之先,皆让我赞叹,十数年而磨一剑,其精心总结之案例分享皆为我们提供了借鉴与崭新思路。我常说,将合适的技术应用于合适之处,即为优化。姜龙的几个案例,或借助物化视图,或借助TimesTen,或巧用同义词,皆能于平常处见神奇,大幅度优化了系统性能。他所管理的数据库极多也极重要,这些精心调整优化实际上是“字斟句酌”、履险如夷,我记得他的一个系统甚至到了加一发而弗可之地步,所以这样的优化更需要勇气和细致,而这正是一位卓越DBA 的品质要求。

黄玮似乎是一位独行之侠,居于东南之地,自树一帜,而与外界绝少往来,然每发一文必如春笋发于微,惊雷动于世。其于Oracle 内部原理研究之深入、剖析之透彻无不让人拍案叫绝,然黄玮之淡泊与隐忍视一切喧嚣如无物,他很少出入论坛,也极少发布技术之外的言论和探讨,他只是按照自己的步调时不时放出一些让识货者视为珍宝的文章。感谢他的慷慨付我以妙文,才有了这本书中他精彩的分享。

叶正盛是一位经验和履历都极为丰富的数据库架构师,于阿里的思考更让他时常有美文发布,结识他是因为在CSDN 上的一篇文章,虽然以程序员角度出发,但是其思考之深入,涉及之广泛,配图之精妙,皆让我感叹,其角度虽曰程序员,然对所有数据库管理员和性能爱好者,皆能有如悟恍然之处;在繁华浮躁的时代,凡能静心著文者必有别样之情怀。正盛以新华字典配图,瞬间将我打动,儿时灯下伏笔、按图索骥之情景历历回在眼前,我在微博上私信约稿,正盛校订其稿,完而善之,才有书中之别样光彩。

杨廷琨在《Oracle DBA 手记:数据库诊断案例与性能优化实践》(这是本系列图书的第一本)出版之际还只是我的挚友和伙伴,而现在已经是我们的同事和强劲后备。老杨是ITPUB 上的“百科全书”,其知识范围之广,涉猎之深之远,一时无人能出其右。老杨之高产、勤奋也让人自愧不如,要让他从一年数百篇文章中精而选之,实非易事,但是在我再三请求之下,老杨勉为其难,汇珍珠成项串,总结手记若干,实为本书点题之作。

正因为有这么多朋友和专家的无私奉献,热心分享,才有了DBA 手记之一而再,再而三。虽然本书收录的部分文章在网络上可见,虽然已经到了电子书横行的时代,但是我仍然喜欢纸面阅读,一本可以拿在手里的书给我的阅读愉悦是无可替代的。在《Oracle DBA 手记2》出版的一年多来,我经常在出门时放一本在背包里,其中的很多文章我已经反反复复阅读了很多次,有时候我想,我才是这本书的最大受教者。

我希望读者们也能喜欢并从中受益,感谢你们!

根据本书的内容,我将全书分为四篇。

第一篇 DBA 之路

这一篇包括一章内容,由冯春培撰写。冯春培是业内著名专家,其技术与行业思考一直为业内所关注,本章就是他对多年的职业经历与行业观察的总结,真知灼见跃然纸上。

第二篇 DBA 手记

这一篇包括四章内容,以手记形式记录了DBA 们的工作点滴、经验分享。本篇的四章内容分别由杨廷琨、姜龙、叶正盛、熊军撰写,杨廷琨的手记侧重于诊断分析,姜龙的手记侧重于以不同技术手段优化数据库,叶正盛的文章则是以程序员的角度阐析数据库内容,熊军的文章介绍了Linux 下使用大内存页优化Oracle数据库的实现和原理。

第三篇 SQL 与SQL 优化

这一篇包括三章内容,分别讲解SQL的执行计划解读、SQLProfile 的使用,以及Oracle 中的NULL 值解析。本篇的三章分别由崔华、熊军、杨廷琨撰写。

第四篇 内部原理与优化

这一篇包括五章内容,分别介绍了Oracle 的索引分裂、TX 锁等待、闩锁原理、逻辑读写、隐含参数与Latch 原理等的内部操作。这一篇章的内容较为深入,分别由黄玮、盖国强、熊军撰写,供喜欢探究内部原理的读者参考。

基于技术分享的目的,我和张乐奕(Kamus)在2010 年创建了Oracle 用户组(ACOUG—http://www.acoug.org),并且每个月在北京开展一次面对面的技术交流活动,这些活动让我们结识了更多志同道合的朋友和优秀的技术作者,感谢Kamus这一年多来的努力付出。

感谢为本书供稿的朋友们,也感谢恩墨科技的仇实、谭龙、盖国相等几位同学,他们在书稿整理、排版等方面对我提供了大量帮助。由于编者能力有限,书中难免存在不足和疏漏之处,敬请读者朋友们指正。

网络以及通过网络来到现实的朋友,永远是我无比珍视的巨大财富。

盖国强(Eygle)2011-04-26 于北京

Oracle DBA手记3:数据库性能优化与内部原理解析相关推荐

  1. Oracle发布更新使数据库性能优化达到75%

    甲骨文公司今天在甲骨文全球技术与应用大会(Oracle OpenWorld)上宣布,为优化Oracle软件和硬件而推出一款快速.现代和可靠的Linux内核--Oracle Unbreakable企业级 ...

  2. oracle使用 union all 用自增序列_值得收藏的Oracle数据库性能优化

    值得收藏的Oracle数据库性能优化 年尾了,新的一波面试军又要开始了,被问到最多的可能就是性能优化,尤其是数据库性能优化,这个面试题不管是初中高级工程师都会被问到.因此我觉得下面31点ORACLE优 ...

  3. oracle union all 特别慢_值得收藏的Oracle数据库性能优化

    前言 年尾了,新的一波面试军又要开始了,被问到最多的可能就是性能优化,尤其是数据库性能优化,这个面试题不管是初中高级工程师都会被问到.因此我觉得下面31点ORACLE优化还是值得调几个去面试.也方便以 ...

  4. 老白Oracle数据库性能优化实务-视频分享

    http://www.400gb.com/u/2718690/4479328 老白Oracle数据库性能优化实务 课程风格: 理论结合实战案例,重点在于介绍优化的思路和工作方法.共享大量技术文档.脚本 ...

  5. MySQL数据库性能优化及自动化运维实践教程!DBA日常工作

    MySQL数据库性能优化及自动化运维实践教程!本文作者将站在更加全面的角度分享他在这一年多 DBA 工作中的经验,希望可以给大家带来启发和帮助. DBA 的日常工作 我觉得 DBA 真的很忙,我们来看 ...

  6. 【云和恩墨业务介绍】之数据库性能优化服务

    数据库性能优化的必要性 性能问题对于行业.企业用户的信息化处理能力.客户的直接体验.硬件资源的投入成本. 运维要求都有着直接的影响,一旦性能问题爆发,将导致业务系统不可正常使用,客户体验变差等一系列影 ...

  7. mysql数据库前端缓存_MySQL数据库性能优化--缓存参数优化

    在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣 ...

  8. MySQL 数据库性能优化之SQL优化

    2019独角兽企业重金招聘Python工程师标准>>> MySQL 数据库性能优化之SQL优化 发布时间: 2012 年 3 月 21 日  发布者: OurMySQL 来源:简朝阳 ...

  9. mysql update emp set_Mysql数据库性能优化一

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  10. 【资源下载】《Oracle DBA手记》第1篇:DBA工作手记

    <Oracle DBA手记>一书共包括四篇内容: 第1篇 DBA工作手记 第2篇 诊断案例篇 第3篇 SQL调优篇 第4篇 性能优化篇 现向大家开源<第1篇 DBA工作手记内容> ...

最新文章

  1. What is ORM ?
  2. 微博“异地多活”部署经验谈
  3. LF AI Day中国站火热报名中
  4. CVE-2009-3459
  5. 网络知识:分享几个路由器设置小技巧,欢迎收藏!
  6. Timer运行多个TimeTask
  7. 智能优化算法:黑猩猩优化算法-附代码
  8. Java猜拳小游戏(剪刀、石头、布)
  9. 计算机实践ps折扇,用PS打造一把水墨画折扇的教程
  10. InfluxDB查询 tag和field列名字重复
  11. 配置管理工作职责思考
  12. install diagnostic_updater
  13. 快递单打印专家 免费
  14. python堆叠面积图_06. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图...
  15. Ubuntu中webp文件转png文件
  16. Linux 磁盘分区及文件系统挂载
  17. 51单片机红外电子密码锁【红外对管矩阵键盘数码管LCD1602显示模块】
  18. 开心网kaixin001.com外挂免费下载
  19. lj2400恢复出厂_联想LJ2400打印机有几种,清零方法是什么,只搜到一种清零方式,我的机器还不是这一种。...
  20. 高级网管网上培训班即将开课

热门文章

  1. python之logging模块简单用法
  2. ava 8中的新功能特性
  3. bat脚本:Java一键编译(Javac java)
  4. 【图灵学院01】Java程序员开发效率工具IntelliJ IDEA使用
  5. 关于Android Studio使用高德地图地位
  6. BitmapFactory.decodeResource(res, id); 第一个参数跟第二个参数有什么关系?
  7. WCF+AJAX最佳实践
  8. Android入门:EditText
  9. 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXX'中的标识列指定显式值。...
  10. HTML5模拟衣服撕扯动画