oracle_sql优化培训课程.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优化 培训目的 数据库参数进行优化所获得的性能提升全部加起来只占数据库应用系统性能提 升的左右,其余的系统性能提升全部来自对应用程序的优化。许多优化专家甚至认为 对应用程序的优化可以得到的系统性能提升。因此可以肯定,通过优化应用程序来对 数据库系统进行优化能获得更大的收益。 对应用程序的优化通常可分为两个方面:源代码的优化和语句的优化。由于涉及 到对程序逻辑的改变,源代码的优化在时间成本和风险上代价很高 (尤其是对正在使 用中的系统进行优化)。另一方面,源代码的优化对数据库系统性能的提升收效有限, 因为应用程序对数据库的操作最终要表现为语句对数据库的操作。 亠、广人心*? r 对语句进行优化有以下一些直接原因: ■ kxx u I .语句是对数据库(数据)进行操作的惟一途径,应用程序的执行最终要归结为语句的 执行,语句的效率对数据库系统的性能起到了决定性的作用。 语句消耗了?的数据库资源 .语句独立于程序设计逻辑,对语句进行优化不会影响程序逻辑,相对于对程序源代 码的优化,对语句的优化在时间成本和风险上的代价都很低。 .语句可以有不同的写法,不同的写法在性能上的差异可能很大。 .语句易学,难精通。语句的性能往往同实际运行系统的数据库结构、记录数量等有 关,不存在普遍适用的规律来提升性能。 .优化数据、关键字段建立索引 .优化数据 、关键字段建立索引 、使用存储过程,它使变得更加灵活和高效。 、备份数据库和清除垃圾数据。 、语句语法的优化。 、清理删除日志。 三.语句优化的原则: 的优化器 优化器有时也被称为查询优化器,这是因为查询是影响数据库性能最主要的部分, 不 要以为只有语句是查询。实际上,带有任何条件的 (、)语句中都包含查询要求,在后面的 文章中,当说到查询时,不一定只是指语句,也有可能指 语句中的查询部分。优化器是所有 关系数据库引擎中的最神秘、最富挑战性的部件之一,从性能的角度看也是最重要的部分, 它性能的高低直接关系到数据库 性能的好坏。 我们知道,语句同其它语言(如语言)的语句不一样,它是非过程化()的语句,即当你要 取数据时,不需要告诉数据库通 过何种途径去取数据,如到底是通过索引取数据,还是应该 将表中的每行数据都取出来,然后再通过一一比较的方式取数据 (即全表扫描),这是由数据 库的优化器 决定的,这就是非过程化的含义,也就是说,如何取数据是由优化器决定,而不 是应用开发者通过编程决定。在处理的、、或语句时,必须访问语句所涉 器部分用来决定访问数据的有效路径,使得语句执行所需的和处理时间最4勺数据,的优化}要求,都能得尤化器必须使用一些之()( 简称):器:基于规则的优化器和基于代价的优化器。方法()或规则()来生成执行计划。例如,如果一个查询的条件 ()包含一个谓词(,其实就是 一个判断条件,如”” , 库的优化器 决定的,这就是非过程化的含义,也就是说,如何取数据是由优化器决定,而不 是应用开发者通过编程决定。在处理的、、或语句时,必须访问语句所涉 器部分用来决定访问数据的有效路径,使得语句执行所需的和处理时间最 4 勺数据,的优化 }要求,都能得 尤化器必须使用一些 之 ()( 简称): 器:基于规则的优化器和基于代价的优化器。 方法()或规则()来生成执行计划。例如,如果一个查询的条件 ()包含一个谓词(,其实就是 一个判断条件,如”” ,“〉” ,” V”等),而且该谓词上引用的列上有有效索引,那么优化 为了实现一个查询,内核必须为每个查询定制一个查询: 生成一个执行计划()。典型的,对于同一个查询,可能有几个扌 到符合条件的数据。例如,参与连接的表可以有多种不同的连接方; 优化器采用的连接方法。为了在多个执行计划中选择最优的执彳 实际的指标来衡量每个执行计划使用的资源 如果一个执行计划使用的资源多,我们就 作为衡量标准,优化器选择代价最小的: 它的执行计划。 在的发展过程中, 这种优化器的不同 做一下简单的介绍: 基于规则的优 合条件的数据 这取决于连 接条件和 、等),这 源也就是我们所说的代价()。 汕的代价大。以执行计划的代价大小 计划作为真正执行该查询的执行计划, 并抛弃其 争代价的方法与衡量代价的大小不同。现对每种优化器 主要是使用基于规则的优化器。在基于规则的优化器中采用启发式的 器将使用索引访问这个表,而不考虑其它因素,如表中数据的多少、表中数据的易变性、索 引的可选择性等。此时数据库中没有关于表与索引数据的统计性描述,如表中有多上行, 每 行的可选择性等。优化器也不考虑实例参数,如 、可用排序内存的大小等,所以优化器有 时就选择了次优化的计划作为真正的执行计划,导致系统性能不高。 如,对于 这个查询来说,如果是使用基于规则的优化器,而且列上有有效的索引,则会 通过列上的索引

文档评论(0)

jinzhuang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档