Oracle性能优化求生指南

出版时间:2012-9  出版社:人民邮电出版社  作者:[澳] Guy Harrison  页数:555  字数:850000  译者:郑勇斌,胡怡文,童家旺  
Tag标签:无  

前言

性能一直是数据库面临的主要问题,Oracle也不能例外。作为执行大部分磁盘IO和数据处理的应用程序的一部分,数据库通常是影响应用程序吞吐量的制约因素,也是影响应用程序响应时间的决定因素。无论是现在还是将来,数据库的性能管理与数据库代码调优都是数据库专业人员的一个高优先级的事情。最近几年,数据库性能优化的重要性一直在提高。从传统意义上来讲,性能调优主要偏重于满足商业服务水平的目标上,这些目标包括应用程序的吞吐量与事务的响应时间。在互联网高度繁荣的年代,与过去相比,我们在性能问题上可以投入更多的资金,通过添加硬件通常是提高性能最快的途径。然而今天,这种情况发生了很大的变化。· 无论是从经济基本面看,还是从IT预算方面看,经济都在发生着变化。商业机构尽可能地寻求减少IT资产的总成本,包括硬件开支、软件许可费用、IT薪酬和电力消耗成本。花钱来为性能问题埋单基本不太可能了,当然,这也不能产生经济效益。· 减少能量消耗(尤其是电力消耗)也是企业不断增强的社会义务。运行繁忙的数据库服务器消耗的电力不仅需要花钱,也产生了环境成本。一个调优较差的数据库就像一辆逆火和冒着烟的状况不佳的汽车,虽然它或许可以把你从A地载到B地,但是它将耗费更多的汽油,并对环境造成更加严重的影响。· 网格和效用计算正在变成现实。在网格和虚拟化技术出现以前,从一台数据库服务器上节省的内存或CPU不太容易被其他的数据库服务器使用。今天,把一台数据库服务器上节省的资源拿到另外一台数据库服务器或者非数据库服务上重用,正在逐渐变成可能。因此,尽管把性能调优的努力集中在商业服务水平的目标上仍是正确的,但是通过减少能量消耗,性能调优也为商业盈利能力做出了贡献,且对社会和环境的责任产生了附加的价值。我们既有商业责任,也有社会责任来确保数据库以最高效的方式运行。作为一个图书爱好者和一个坚定的Oracle技术人员,我曾经买过很多极好的Oracle技术图书。我最喜爱的一些图书被列举在参考书目中。已经有了这么多好书,为什么还要再写一本?就自身而言,我仍然需要一本提供了系统的、全面的并易于理解的Oracle调优方法的书,一本涵盖Oracle性能管理的所有方面的书。涉及了Oracle调优必要知识的书、适合专业技术的所有级别和覆盖了所有相关的原则的一本“求生指南”的书,这本书能够引导大家完成大多数性能管理的挑战和机会。因此,在写本书时,我制订了下面的这些目标。· 尽可能用最系统有效的方式阐述性能问题,为Oracle性能调优提供一个结构化方法。· 从应用到数据库设计,以及通过SQL调优、争用管理和针对内存和物理IO的管理等角度来解决Oracle性能管理的所有方面的问题。· 在提供技术深度和广度的同时,保持对调优的基础原理的强烈关注。关注基础原理,通常可以获得最大的性能调优收益,如果不解决,通常会限制应用高级技巧可获取的收益。· 为Oracle调优初学者与具有丰富实践经验的调优人员提供可利用的内容。读者范围本书适用于对提高Oracle数据库性能或者数据库的应用感兴趣的任何人。包括应用架构师、开发人员和Oracle数据库管理员。并不是本书的所有章节都能让应用架构师与开发人员产生兴趣,比如,他们很少有机会决定磁盘存储阵列上Oracle数据文件的分布。类似地,数据库管理员们经常会参与性能调整的所有方面,但是很少会参与应用设计。这些人员分组里的每一个人都有可能选择跳过本书的某些章节,他们对性能的这些方面没有控制权。然而,我要着重强调本书的理念,在缓解系统症状前,它提倡专注于解决导致性能问题的根本原因。在本书后面的章节中(例如磁盘IO调优),我们假定你们已经处理了前面的章节中已经列出那些行为(例如调优SQL)。为了使对Oracle数据库不太熟悉的新手容易理解本书,我将简要介绍并定义一些关键概念和Oracle的体系结构。然而,我假定大部分人熟悉Oracle和SQL语言。本书的组织结构在第1章中,围绕分层调优的概念,我介绍了调优方法论。这种方法论提供了一种针对Oracle性能优化的有效的、系统化的方法,在优化外在症状前关注于优化根本原因,这可以最大化调优投资的性能回报。本书大部分围绕这种方法论来组织,包括下面的主要章节。· 第一部分:方法、概念和工具 第1章到第3章,描述提供了最有效的优化Oracle数据库的方法的性能调优的方法论。我们还关注跟踪、监控和诊断Oracle数据库性能的基本工具和技术,同时也对Oracle数据库的体系结构进行了概述。· 第二部分:应用和数据库设计 第4章到第6章介绍应用和数据库设计。这些章节涵盖数据库的逻辑和物理设计、索引、事务设计以及Oracle API的最佳使用。· 第三部分:SQL和PL/SQL调优 这部分由第7章到第14章组成,覆盖了SQL语句的优化。SQL语句调优通常贡献绝大部分的数据库性能提升机会,并且应该在对数据库服务器调优之前优先被处理。我们也关注利用并行SQL和PL/SQL代码的进行调优的方法。· 第四部分:最小化争用 第15章到第17章讨论了争用的多个方面。Oracle数据库资源的争用(比如锁、闩锁和共享内存)限制了数据库处理应用程序发起的请求的能力。通过减少争用,我们可以增加数据库能够服务的应用程序的请求量。· 第五部分:优化内存 第18章到第20章介绍通过最优化内存配置来提升性能。内存优化减少了成为物理IO的逻辑IO的数量。因此,优化内存是数据库服务器性能中的一个根本因素。· 第六部分:IO调优和集群 从第21章到第22章讨论了物理磁盘IO。我们为避免磁盘IO而竭尽所能了。现在,该是优化剩余的磁盘IO的时候了。在这部分里,我们关注如何配置Oracle和磁盘IO子系统来降低IO负载以及提高IO吞吐量。第1章到第22章既可用于RAC系统,也可用于单实例Oracle。然而,RAC的确引入了一些特有的考虑,我们将在第23章中探讨这些。关于示例和样本数据在本书的讨论中,频繁使用到几个脚本来报告数据库性能的某些方面。可以通过本书的站点http://www.informit.com/store/product.aspx·isbn=0137011954下载这些脚本。还可以访问我的站点http://www.guyharrison.net与博客查找一些其他的资料。贯穿本书,还将看到为了描述各种调优原则的SQL语句和PL/SQL程序的例子。在本书的任何地方,这些示例都采用标准的Oracle数据样本模式,可以在创建数据库时安装这些样本模式,也可以在以后手动安装。B10771-01(Oracle 10g)或B28328-01(Oracle 11g)的手册中有对这些模式的详细描述,可以在http://technet.oracle.com获得这些手册。有些案例中,某些样本表中的行记录数太少,以致无法有效地描述特定的SQL调优或者其他的类似场景。基于这个原因,我写了一个过程来增加CUSTOMERS和SALES等关键表的大小。可在本书站点可用的脚本包里找到这些PL/SQL包。本书覆盖的Oracle版本本书全面覆盖了Oracle 10g和11g版本,包括Oracle 11g 发行版本2。某些引用偶尔会使用Oracle的早期版本,但本书中使用的所有示例都可以在Oracle 10g或Oracle 11g数据库中找到。在本书将要出版时,Oracle 11g 发行版本2仍处于beta状态。在Oracle 11g发行版本2的正式发行版本里,可能会有一些细微的行为变化。如果这种情况发生,我将在本书的站点和我的个人站点中予以说明。关于Quest软件和Spotlight我21年职业生涯的大半时间是在Quest软件公司从事Oracle技术相关的工作。在Quest时,我一直深度介入了许多Oracle开发和管理工具的开发,但是,主要还是集中在Spotlight on Oracle和Spotlight on Oracle RAC软件上。我认为Spotlight极好地涵盖了Oracle性能管理的一个方面,我已经谈过这个特性并且有时会提供一个屏幕快照。因为我既是Spotlight的架构师,也是本书的作者,你可以假定Spotlight代表了本书提及的许多原则和实践,而且我肯定鼓励大家下载并评估Spotlight。然而,鉴于Spotlight是我付出的心血,当涉及Spotlight或者Quest的任何软件产品时,我几乎不可能没有任何偏向。致Oracle SQL High Performance Tuning的读者自Oracle SQL High Performance Tuning的第2版出版到现在差不多有8年了,我仍能经常收到编写此书第3版的要求。那些认为Oracle SQL High Performance Tuning有价值的人,应该会发现这本书完全可以取代那本书的第3版。在本书中,我延续着Oracle SQL High Performance Tuning的严谨务实的方法,而且对Oracle性能管理的原理进行了更加广泛的延伸。在本书中,仍然保持着对SQL调优的关注,但是,是在一个更加宽广的范围,包括应用程序、数据库设计、数据库服务器配置和优化。致  谢感谢组稿编辑Trina McDonald鼓励我承担这个项目并且监督这个过程。我还要特别感谢Pearson出版社的Olivia Basegio、Michael Thurston和 Tonya Simpson三位编辑。特别感谢技术审核Patrick O’Keeffe、Bert Scalzo和Oleg Voskoboynikov。本书涉及了大量的资料,非常感谢他们的技术支持和反馈。Steven Feuerstein也对本书第6章和第12章提供了一些极好的反馈。感谢你们所有的人。感谢在Oracle社区不断分享他们的经验和对Oracle技术的真知灼见的那些人。如果没有那些自由分享的智慧财富,我根本写不出本书。附录列举了我非常感谢的一些博客与博主。最后,也是最重要的,一如继往地感谢一直陪伴左右的妻子Jenni和孩子Chris、Kate、Mike和William。因为有了你们的爱和支持,本书才得以完成,在编写本书和其他写作项目期间,你们还得迁就我,在此深表歉意。

内容概要

Oracle数据库的应用十分广泛,数据库性能的好坏直接影响应用程序能否快速响应用户指令。而Oracle数据库又比较复杂,数据库性能调优成为众多DBA最为头疼的问题。本书作者凭借其20多年的丰富经验,为我们带来了一本系统的、全面的Oracle性能优化手册,用结构化方法帮助读者解决从数据库应用到数据库设计的所有问题。全书分为6部分、23章,实例丰富,兼具技术深度和广度,被读者誉为“最有用的Oracle性能调优参考书”。主要内容包括:
有效的Oracle性能优化方法描述;
如何充分利用Oracle的核心工具来跟踪、监控、诊断性能;?
高效的数据库逻辑与物理设计、索引设计、事务设计以及API的使用;
SQL与PL/SQL调优,包含并行SQL技术的使用;?
最小化排队锁、闩锁、共享内存以及其他数据库资源的争用;
优化内存以及物理磁盘I/O;?
调优Oracle?
RAC。
本书适用于所有的Oracle
DBA。

作者简介

Guy
Harrison 知名Oracle技术专家,在应用与数据库管理、性能调优、软件开发领域有20多年的从业经验。目前任Quest软件公司研发总监,带领软件开发团队研发了广受欢迎的Spotlight系列产品,他负责Spotlight的Oracle版本、Oracle RAC版本、MySQL版本及SQL Server版本。除本书外,他还著有Oracle SQL High Performance
Tuning、Oracle Desk Reference及MySQL Stored Procedure
Programming。

书籍目录

第一部分  方法、概念和工具
第1章 Oracle性能调优:一种系统化方法
1.1 Oracle性能调优简史
1.2 超越表面分析法
1.3 第一阶段:最小化应用负载
1.4 第二阶段:降低争用和瓶颈
1.5 第三阶段:降低物理IO
1.6 第四阶段:优化磁盘IO
1.7 本章小结
第2章 Oracle体系结构与基本概念
2.1 Oracle API
2.1.1 创建游标
2.1.2 检查缓存的SQL语句
2.1.3 解析SQL语句
2.1.4 关联绑定变量
2.1.5 执行SQL语句
2.1.6 提取记录
2.1.7 使用批量提取
2.1.8 处理结果集
2.1.9 关闭游标
2.1.10 优化Oracle API调用
2.2 Oracle查询优化器
2.2.1 基于成本的优化
2.2.2 优化器目标
2.2.3 优化器统计信息
2.2.4 绑定变量窥视与自适应游标共享
2.2.5 提示
2.2.6 存储概要、SQL概要和SQL计划基线
2.3 事务和锁
2.4 Oracle服务器体系结构
2.4.1 实例与数据库
2.4.2 系统全局区
2.4.3 数据缓存
2.4.4 程序全局区
2.4.5 内存管理
2.5 段与文件
2.5.1 表
2.5.2 索引
2.5.3 块、区间、段以及分区
2.5.4 表空间与数据文件
2.5.5 回滚段
2.5.6 重做日志与归档日志
2.5.7 闪回日志
2.6 服务器进程
2.7 后台进程
2.8 真正应用集群
2.9 本章小结
第3章 实用工具
3.1 生成SQL语句的执行计划
3.1.1 计划表
3.1.2 研究缓存的SQL
3.1.3 DBMS_XPLAN
3.1.4 解释执行计划
3.1.5 虚拟索引
3.2 跟踪Oracle的执行
3.2.1 从当前会话中调用跟踪
3.2.2 识别跟踪文件
3.2.3 获取跟踪状态
3.2.4 在其他会话中调用跟踪
3.2.5 通过MODULE、ACTION或SERVICE进行跟踪
3.2.6 使用登录触发器来启用跟踪
3.2.7 定位跟踪文件
3.2.8 其他特殊化的跟踪
3.3 使用tkprof格式化跟踪文件
3.3.1 tkprof的排序选项
3.3.2 其他tkprof选项
3.3.3 合并多个SQL跟踪文件
3.3.4 解释tkprof的输出结果
3.3.5 tkprof中的执行计划
3.3.6 等待统计信息与tkprof
3.3.7 tkprof的替代品
3.4 在SQL*PLUS中使用AUTOTRACE
3.5 监控Oracle服务器
3.5.1 V$表接口
3.5.2 等待接口
3.5.3 时间模型
3.5.4 整合时间模型与等待接口
3.5.5 Oracle企业管理器
3.5.6 SPOTLIGHT ON ORACLE
3.6 本章小结
……
第二部分 应用和数据库设计
第4章 数据库逻辑设计和物理设计
第5章 索引与簇
第6章 应用设计与实现
第三部分 SQL和PL/SQL调优
第7章 优化器的优化
第8章 执行计划管理
第9章 表访问调优
第10章 联结与子查询
第11章 排序、分组与集合操作
第12章 使用和调优PL/SQL
第13章 并行SQL
第14章 DML调优
第四部分 最小化争用
第15章 锁争用
第16章 闩锁和互斥争用
第17章 共享内存争用
第五部分 优化内存
第18章 缓冲区高速缓存调优
第19章 优化PGA内存
第20章 其他的内存管理主题
第六部分 IO调优和集群
第21章 磁盘IO调优基础
第22章 高级IO技术
第23章 优化RAC
参考书目

章节摘录

版权页:   插图:   分区使得表和索引由多个数据段构成。用户可以单独地管理每一个分区段,并且可以独立地设置每个分区段的存储参数(例如,可以将每个段存储在不同的表空间中)。 分区有很多优势,如下所述。 查询只需要读取包含相关数据的分区,减少了特定的查询所需要的逻辑读。分区排除 ( partition elimination)技术尤其适合那些因为读取表的数据过多以致于无法有效利用索引的SQL查询,而且这些SQL查询仍然只需要读取某些分区,而不用读取整张表。 将表和索引分割成多个数据段,并行处理能力将得到大幅度提高。这包括查询、插入、更新和删除等数据管理操作,也包括索引重建等维护类型的操作。 删除大批量过期的数据时,有时可以通过删除过期的分区来高效地完成,而不必采用消耗很多资源的删除语句来进行行级删除。 在有些情况下,将表和索引分割成多个数据段也可以降低锁争用。当数据库运行在RAC环境中时,它特别有用,因为它能够降低热点块( Hot block)争用,进而降低闩锁(latch)争用(参考第16章)。 并不是所有的Oracle版本都能够使用分区。分区功能目前是Oracle数据库企业版的一个选件,需要额外花钱获得授权许可才可以使用。 4.6.1 分区的类型 Oracle提供了多种不同的分区方案,用来确定哪些行被分配给哪些分区。在每一种分区方案中,它都依赖于某个列或某些列的取值,这些列称为分区键( partition key)。下面是几种不同的分区机制。 范围分区(Range partitioning),就是根据表中的分区键取值的范围,决定将该数据存储在哪个分区上。我们在时间类型的列上经常能够看到范围分区,这种方式可以让我们通过删除一个分区来快速地清除过期的数据。间隔分区是Oracle llg中范围分区的一个扩展,当数据来自新的间隔的时候(如一个月或其他时间范围),一个新的范围分区会被自动创建。 散列分区( Hash partitioning)通过一个数学上的散列算法来确定一行记录应该存储在哪个分区。这有助于确保每个分区的大小相同,但是,对于在分区键上进行范围检索的查询来讲,它有可能不支持分区排除功能。 列表分区( List partitioning)根据预先定义好的分区键数值确定记录被分配到哪个分区。 它和范围分区有些类似,但更加灵活,能够将分区键取值不相邻的记录存储在相同的分区中。 Oracle 11g中还引入了一些新的分区方案。

媒体关注与评论

“本书涉及的主题之广泛、阐述之细致令我吃惊,像我这种在Oracle领域摸爬滚打了近20年的人也受益匪浅。”——Rob Hamel,Pythian咨询集团副总裁,资深Oracle专家“Harrison先生在Oracle性能调优领域备受尊崇,他的书是我在Oracle数据库性能方向的启蒙读物。本书为Oracle性能调优提供了一个结构化方法,同时极为重视基础理论,旨在帮助读者解决Oracle性能管理所有方面的问题。”——读者评论“与那些整页都是不可复制的‘测试用例’代码清单的纯理论性图书截然不同。对于Oracle DBA来说,这是一本实用性极强的书。”——读者评论

编辑推荐

Oracle数据库优化必读知名作者力作,全面介绍Oracle性能管理源于实战,精于实例内容涵盖Oracle 10g、11g及11g发行版本2

图书封面

图书标签Tags

评论、评分、阅读与下载


    Oracle性能优化求生指南 PDF格式下载


用户评论 (总计65条)

 
 

  •   如题所说的,oracle基础的书,包括e文,网上还是能找到一大把的,也有别人总结的,还有各类单行函数等的用法,这些基础书籍感觉就没必要买。但是这本书讲的都是oracle性能优化技巧,涉及到各方面,包括数据库设计、查询、排序、集合、并发访问、分区等等。相信能收获匪浅。
  •   不错的技术书籍,对于性能优化方面该有的基本都有了,适合有一点ORACLE基础的人学习!
  •   看了几章,感觉书写的特别的棒,内容很深入,值得仔细阅读,对于oracle水平的提升有很大的帮助。
  •   接到数据库性能优化任务后,立即掏书,这本书的优势在于深入浅出,将问题分为四个子问题,每个子问题又细分为若干个部分,每个部分讲解深入而细致,希望用半个月时间将此书研读一遍,为制定方案提供可操作的依据。本人买计算机类书籍的原则是:原文作者是外国人且经验丰富,由国内资深从业者翻译而来的相关专业书籍。
  •   很值得学习Oracle的朋友借鉴的一本书!
  •   不错的调优方面的书籍,适合DBA阅读
  •   个人感觉很好,有利于自己对数据库方面的成长
  •   书本的性能调整附有执行结果,及图示参考.具体实用.
  •   对于不了解索引的朋友,可以看这本书,基本把所有的索引的概念都介绍了,是个入门的好书。
  •   内容丰富、书的印刷好,是正版。
  •   书比较新,而且里面胡内容真心赞,发货速度很快,这书买得值
  •   很不错,许多东西写的很有用
  •   很有用,go
  •   书挺好的,作为工具书挺好的,适合有相关工作经验的人学习
  •   读了第一章,感觉非常好,作者的观点犀利。
  •   挺实用,专业指导性比较强
  •   非常好的一本书。推荐。
  •   书内容很不错,深入浅出,读来很有心得
  •   内容充实。。。。。。。。。。。。。。。。。。。。。。。。
  •   印刷质量很好。内容深入浅出,很容易上手。概念解释的很清楚。
  •   冲着这个翻译作者去的,嘿嘿。
  •   不错,理论与实践结合,非常实用。
  •   书不错。值得一读。很多很实用的例子
  •   很不错的书,特别喜欢
  •   书还没读,但我信心满满。
  •   看目录还行,先买回来看看
  •   没看完,读起来吸引力不大
  •   还好吧学习中。。。
  •   好书要与实践结合才行。
  •   早上下的订单 下午3点到 很快
  •   老公说还不错,我也不懂,不过很厚,看起来很实用。
  •   应该不会太差...对于oracle和sql的调优要学习一下.应该是有帮助的
  •   本书涉及到oracle性能优化的各个方面,相当全面,但都深入。不过,作为性能优化方面的入门书籍,相当不错
  •   书中从oacle的各方面来提升性能,值得好好学习。
  •   很详细的,体系的 优化熟悉,但是,感觉过度翻译,一些专业的名字,感觉还是沿用原来的表达。如 hint 翻译成“提示”,就感觉有点怪。都不如直接用hints表达更好。包装很差,外观一些地方都搞脏了,当当网要改进啊!
  •   刚拿到手粗略翻了下,这是个翻译型的技术书,还不错,里面的思路比较受用的。
  •   十分全面,讲的内容很好呀,容易理解。希望能多一点实际案例分享!
  •   书看起来比较旧
  •   先看看再说,送货速度很快,质量也比较好。
  •   内容还没来得及看,目录上看,内容还是挺吸引人的。
  •   不错,看了挺有帮助的。
  •   书挺好的,还在阅读中
  •   刚打开翻了几页,将的东西挺多的.. 支持
  •   正准备好好品读
  •   这不是真的不错,我看了1了
  •   书的内容不错,各部分都有提及优化的思路等
  •   物流晚了一天,不过已经提前发邮件通知了,还算好吧 ,关键是书被压皱了 封面搞了一些黑黑的东西看着很不舒服,内容还没细看,大致看了下,印刷还行吧
  •   总体来说,还不错。就是翻译的水平有点差
  •   适合有基础的看。
  •   书不是很厚,对于目录上所有的知识点都讲的比较细的话,这么厚的书远远不够。走马观花的看了几章,确实只是点到为止,适合于初级人员补充知识,再想深入了解还需要其他资料辅助。书本身的印刷很好,很清晰,纸张也不错。倒是我这本后面200多页有压皱的痕迹,还有几页被压出了几个孔,不过还好不耽误看。
  •   对于一个初学oracle的人来说还是有难度,但是收获还是很多的
  •   还没有看完,看了几天才来评论的,内容很赞,努力学习中
  •   oracle性能优化的各方各面都涉及到了,非常不错!
  •   1.书内容比较有技术含量,不过有些内容我还看不懂2,书质量不错,很新,我以为半价估计会有破损,实际不是3。书送的速度很快,周日拍,周一就到货
  •   优化方面覆盖面很全。但对初学者来说,理解起来有一定困难。
  •   还可以,数有一定的深度!
  •   很喜欢 很细致 有帮助 多学习
  •   好说,最近工作中遇到了性能问题,就买了本书,大概看了下,很不错,讲的很详细,爱不释手
  •   书籍很棒,就是具体的例子少了点
  •   这本书就不值得去买!写的太垃圾了!
  •   很不错的书,值得拥有慢慢细读
  •   买来就放一边,没在看了,可惜
  •   书不错,可以看
  •   用的卷买了一堆书。还没来及看。
  •   henhao!!!!!!!!!
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7