欢迎光临
免费的PDF电子书下载网站

Oracle高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,深入揭示Oracle SQL优化与调优的原理、核心技术与思想方法) PDF下载

编辑推荐

点击查看:

Oracle高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,深入揭示Oracle SQL优化与调优的原理、核心技术与思想方法) PDF下载

资深Oracle DBA黄玮(Fuyuncat)十年磨一剑,深入揭示OracleSQL优化与调优的原理、核心技术与思想方法,盖国强鼎力推荐!

 ;

内容简介

Oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是SQL性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖OracleSQL优化与调优技术,主要内容包括:
第一篇“执行计划”详细介绍各种执行计划的含义与操作,为后面的深入分析打下基础。重点讲解执行计划在SQL语句执行的生命周期中所处的位置和作用,SQL引擎如何生成执行计划以及如何获取SQL语句的执行计划,如何从各种数据源显示和查看已经生成的执行计划。
第二篇“SQL优化技术”深入分析Oracle的SQL优化技术,包括逻辑优化技术和物理优化技术。用大量示例详尽分析Oracle中现有的各种查询转换技术,先分析Oracle如何收集、统计系统和对象的数据,然后推导各种代价估算公式,给出各种情形下的代价计算演示。
第三篇“SQL调优技术”深入剖析Oracle提供的各项调优技术。先对语句实际运行的性能统计数据进行了深度分析,介绍各项统计数据是由什么操作导致的以及如何统计。然后介绍如何对SQL语句进行优化以获得稳定、高效的性能。最后,依据对SQL优化及调优技术的分析,介绍如何快速优化SQL的思路。
本书内容丰富且深入,破解了Oracle技术的很多秘密,适合Oracle数据库管理员、应用开发人员参考。

作者简介

黄玮,资深Oracle数据库管理员,从事DBA工作十几年,有丰富的大型数据库开发、设计和维护经验,涉及水利、军工、电信及航运等行业。目前供职于某世界著名物流公司,负责公司的电子物流系统的数据库开发、维护工作。2005年创建个人网站www.HelloDBA.com,并致力于数据库方面的基础性技术研究,整理和发布了大量关于数据库系统的底层机制、存储结构、性能调优以及基础算法的文章,开发了多个数据恢复、性能监控、内核跟踪等免费的实用工具,为Oracle社区做出了应有的贡献。

Oracle高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,深入揭示Oracle SQL优化与调优的原理、核心技术与思想方法) PDF下载

目录


前言
第一篇 执行计划
第1章 生成和显示执行计划 / 3
1.1 生成执行计划 / 3
1.2 显示执行计划 / 4
1.2.1 通过查询语句显示计划 / 4
1.2.2 通过包DBMS_XPLAN显示计划 / 4
1.2.3 AUTOTRACE / 12
1.2.4 其他方法 / 13
第2章 解读执行计划 / 15
2.1 执行计划的基本数据 / 15
2.2 内部函数与操作 / 17
2.3 执行计划各个列的含义 / 19

媒体评论

黄玮是个实证派,而研究优化器算法,也唯有实证派才能够胜任。他通过大量测试进行推演,从而破解CBO计算法则,这不仅需要深入的计算机知识,也需要极大的耐心和毅力。这满纸的公式与数字对于读者来说,可能会成为过眼云烟;而对于作者来说,却是锱铢必较的艰苦之旅。
  ——盖国强 云和恩墨创始人、Oracle ACE总监、ITPUB论坛超级版主

前沿

黄玮是个实证派,而研究优化器算法,也唯有实证派才能够胜任,他通过大量测试进行推演,从而破解CBO计算法则,这不仅需要深入的计算机知识,也需要极大的耐心和毅力,这满纸的数字对于读者来说,可能会成为过眼云烟,而对于作者来说,却是锱铢必较的艰苦之旅。
——盖国强
云和恩墨创始人、Oracle ACE总监、ITPUB论坛超级版主

免费在线读

作为一个数据库管理系统来说,Oracle不仅具备为用户存储和管理海量数据的能力,还能够解析用户提交结构化查询语言(StructuredQueryLanguage,SQL)的请求,高效和快速地响应请求。为了保证语句的查询效率,Oracle开发了许多技术,从各个方面提供支持,例如,物理设计、内存管理和SQL语句本身的自动优化与调优。
各种基于数据库的系统中,绝大多数功能都需要通过数据库管理系统查询和操作数据,因而后台的性能对系统整体性能的影响是相当关键的。而要实现对数据的管理与查询,程序需要通过SQL语句对数据库发起相应的请求。也就是说,SQL语句的性能成为影响系统性能至关重要的因素。
Oracle数据库作为目前市场占有量最大的关系型数据库管理系统,拥有成千上万的专利技术保证数据库系统的性能。而对于应用系统性能影响重大的SQL引擎,Oracle更是提供了强大的技术保障,不仅采用了主流数据库系统当中优化效果最好的优化模式—基于代价的优化模式,还引入了数量庞大的、有别于其他数据库系统的专利优化技术。这些优化技术使得Oracle在SQL优化和调优方面独树一帜。
然而,尽管Oracle可能已经在内部帮助我们完成了99%的优化工作,但剩余的1%仍然可能成为导致性能下降的决定因素。因此,在Oracle数据库系统当中,发生性能问题的例子还是层出不穷。并且,以作者的个人经历来看,这些性能问题绝大多数是由SQL语句引起的。因此,深入理解和掌握Oracle的SQL语句优化和调优技术,是开发人员和数据库管理员都应掌握的,也是开发出性能高效的数据库系统的必要前提。
本书结合作者多年来对Oracle的SQL内部优化机制的研究以及SQL调优的经验,深入分析了Oracle的各项SQL语句的优化与调优技术,侧重于对这些技术的内部机制的介绍,目的是帮助读者更加深入地了解和消化这些技术,使读者在面对和解决由SQL引起的性能问题时,能透彻地看清问题的本质,迅速找到有效的解决方法。
SQL优化是指在语句运行之前,由SQL引擎对语句进行解析,采用各项技术对查询进行优化,找到其最佳的执行路径,即执行计划;SQL调优则是对已经存在执行计划的语句进行进一步调整,使其运行性能更加接近性能指标的要求,达到性能改进的目的。SQL优化与SQL调优是在改善SQL语句性能的过程中,两个不同阶段实施的技术与方法。SQL优化,基本上是由优化器根据当前环境和数据实施的内部优化措施;SQL调优,则是通过对语句、物理对象以及优化环境的干预,使得优化器能够选择到最优的SQL执行方式。因此,这两个方面的技术内容是相辅相成的。
在RBO时期(9i之前),由于优化技术的限制,使得SQL语句往往不能获得最佳的执行计划,从而导致性能低下,需要依赖于开发人员或数据库管理员的经验和技能,对语句进行人工干预,从而调整其性能。可以说,这个时期的优化技术是有限的,并且优化与调优过程比较独立。进入CBO时代后,统计数据(StatisticsData)为优化器采用更加智能和复杂的优化技术提供了有力的数据保障,越来越多的基于代价的优化技术被应用到了Oracle的SQL引擎当中。同时,这也使得自动和智能化的优化技术成为可能。在10g、11g当中,Oracle引入了多项新的优化技术。这些优化技术不仅仅能针对当前的运行结果进行调优,而且能对优化环境和物理设计等影响优化效果的因素进行深入检查,提供短期和长期的各种调优建议。并且,部分调优结果还可以在语句的下一个执行周期中影响其优化方法。这就使得优化与调优技术更加紧密地结合在一起,为SQL语句提供一个稳定、高效的运行性能。
简单地说,我们在调整SQL语句性能时,需要灵活地使用SQL调优技术,使得SQL语句在优化阶段能够获得真正最佳性能的执行计划。图0-1描述了SQL优化与SQL调优在改进性能过程中所处的位置以及相互作用的方式。希望读者可以先通过该图体会到这两方面技术之间的关系,在后续的阅读和学习过程中能清楚地知道各种技术在提高性能过程中的作用。
无论是SQL优化还是调优,它们的核心内容都是执行计划(ExecutionPlan)。许多相关技术,例如查询转换、SQL调用配置(SQLProfile)都是围绕执行计划这一要素展开的。本书将从执行计划开始,逐步剖析Oracle的SQL优化与调优的相关技术。
本书分为三篇、共八章。
第一篇解释什么是SQL语句的执行计划。主要内容包括:执行计划在SQL语句执行的生命周期中所处的位置和作用;SQL引擎如何生成执行计划以及如何手工生成一条语句的执行计划;如何从各种数据源显示和查看已经生成的执行计划。本篇的重点部分则是向读者解释如何读懂执行计划,包含执行计划结构解析、各种数据所代表的含义、执行计划各种操作的含义和示例,以及执行计划与内部函数之间的本质关系。
第二篇深入分析Oracle的SQL优化技术。总体上来说,SQL优化技术可以分为两类:逻辑优化技术和物理优化技术。其中,逻辑优化主要是指查询转换技术。本篇当中详尽地分析了10g、11g中现有的各种查询转换技术,并给出实际示例帮助读者理解这些技术。而物理优化则指的是优化器通过代价估算来选择最佳的执行计划。优化器要正确估算执行计划及其操作的代价,则需要准确的统计数据的支持。因此本书在分析优化器的代价估算方法之前,先分析Oracle如何收集、统计系统和对象的统计数据。然后,结合作者推导出的各种代价估算公式,演示了各种情形下的代价计算方法。
在本书中有不少演示代码用于解释相关知识点。读者请执行脚本00_01_Prepare.sql(进入Oracle11g中再执行00_01_Prepare_11g.sql)准备演示环境。本书所介绍的内容将基于10g和11g的版本特性,其中有部分脚本只能用于相应版本,请注意提示。www.HelloDBA.com是作者专属的个人网站,是作者分享个人经验和心得的重要平台。本书中使用的所有代码脚本都会放在本网站上供读者免费下载。此外,因篇幅问题而删减的附录“SQL提示的含义和示例”也将以电子文档的形式提供读者免费阅读。读者在阅读本书过程中,如有任何疑问,可以给作者发送电子邮件:fuyuncat@gmail.com,也可以关注作者的微博(http://www.weibo.com/u/1407854870)。
【书摘】
第一篇
执行计划
执行计划是指示Oracle如何获取和过滤数据、产生最终结果集,是影响SQL语句执行性能的关键因素。我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让SQL引擎为语句生成执行计划。
在深入了解执行计划之前,我们先了解SQL语句的处理执行过程。当一条语句提交到Oracle后,SQL引擎会分为三个步骤对其处理和执行:解析(Parse)、执行(Execute)和获取(Fetch),分别由SQL引擎的不同组件完成。SQL引擎的组件如图1-1所示。
1. SQL编译器(SQL Compiler)
将语句编译到一个共享游标中。SQL编译器由解析器(Parser)、查询优化器(Query Optimizer)和行源生成器(RowSource Generator)组成。
q 解析器(Parser)—执行对SQL语句的语法、语义分析,将查询中的视图展开、划分为小的查询块。
q 查询优化器(QueryOptimizer)—为语句生成一组可能被使用的执行计划,估算出每个执行计划的代价,并调用计划生成器(PlanGenerator)生成计划,比较计划的代价,最终选择选择一个代价最小的计划。查询优化器由查询转换器(QueryTransform)、代价估算器(Estimator)和计划生成器(Plan Generator)组成。
注意,上述优化器实际上指的是基于代价的优化器(Cost BasedOptimizer,CBO),CBO也是当前采用的所有优化和调优技术的核心基础。

Oracle高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,深入揭示Oracle SQL优化与调优的原理、核心技术与思想方法) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Oracle高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,深入揭示Oracle SQL优化与调优的原理、核心技术与思想方法)