基于RCLE的查询优化_第1页
基于RCLE的查询优化_第2页
基于RCLE的查询优化_第3页
基于RCLE的查询优化_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于ORACLE的查询优化、DBMS查询规则查询优化是在查询执行引擎生成一个执行策略的过程中,尽量使查询的总开销和总时间达到最小任何关系数据库都有一套解决查询的规则, 而各种关系数据库查询的过程稍有所区别,但是基本的操作思想和过程是一致的。DBMS的查询规则一般分为基本SQL查询 语句相关数据的统计信息以下几个过程:语法分析与翻译处理;查询优化处理;执行语法分卄析与 翻 译图1DBMS查询规则图1语法分析与翻译处理查询处理开始之前,系统必须在扩展关系代数的基础上将查询语句翻译成可 使用的形式,为此这一阶段完成两个主要的功能: 一是检查查询语句语法的正确 性;二是把查询语句分析成关系数据库能够理

2、解的各个组成部分,构造该查询的语法分析树,并将其翻译成关系代数表达式。2.查询优化处理查询优化是为查询选择最有效的查询执行计划的过程。 查询优化一方面在关 系代数级进行优化, 要做的是力图找出与给定表达式等价且执行效率最高的一个 表达式。为了在诸多查询执行计划中做出选择, 优化器必须估计每个查询执行计 划的代价。 在没有真正执行查询计划之前, 准确计算出查询计划的代价通常是不 可能的。因此,优化器要利用各关系的统计信息,来对计划做出最佳估计。 3.执行执行就是将优化器所选择的执行计划执行, 执行引擎从相应的数据库文件中 筛选数据,将结果输出。优化器在选取优化规则时,大多数 DBMS( 如 OR

3、ACLE 、 SYBASE、 SQLSERVER 等 )都是采用基于代价的优化方法,优化器从数据字典中获取许多 统计信息, 根据不同的算法估计出不同查询规划的代价, 然后选择一个较优的规 划。对于 ORACLE ,在 ORACLE7 之前,主要是使 用基于规则的优化器RULEBASEDOPTIMIZATION(简称 RBO)。从 ORACLE8 开始,ORACLE 把一 个代价引擎(COSTENGINE)集成到数据库内核中,用来估计每个执行计划需要的 代价,该代价将每个执行计划所耗费的资源进行量化,从而 CBO 可以根据这个 代 价 选 择 出 最 优 的 执 行 计 划 , 即 基 于 代

4、价 的 优 化 器 COSTBASEDOPTIMIZATION( 简称 CBO)。要注意的是:虽然 CBO 的功能随着 ORACLE 新版本的推出,功能越来越强, 但它不是能包治百病的神药,否则就不再需要 DBA 了。由于一系列因素都会影响语句的执行, 优化器综合权衡各个因素, 在众多的 执行计划中选择认为是最佳的执行计划。 然而,应用设计人员通常比优化器更知 道关于特定应用的数据特点。 无论优化器多么智能, 在某些情况下开发人员能选 择出比优化器选择的最优执行计划还要好的执行计划, 这是需要人工干预数据库 优化的主要原因。事实表明,在某些情况下,确实需要 DBA 对某些语句进行手 工优化。二

5、 SQL 语句优化步骤数据库系统的生命周期可分为设计、 开发和成品三个阶段。 在这三个阶段都 可以提高查询速度。由于设计阶段进行数据库性能优化的成本最低,收益最大, 因此在设计阶段就应该选择合理的数据库设计方法。 而在数据库系统的开发和成 品阶段则需对应用程序进行优化:通常应用程序可分为两个方面源代码和 SQL 语句。源代码的优化由于涉及程序逻辑的改变,因此优化源代码要在时间 成本和风险成本上投入较高代价,因此对 SQL 语句的优化尤为重要 3 。调整现有应用程序中 SQL 语句的最好方法是采取下列步骤 4:1. 熟悉应用程序。管理员不仅需要熟悉特定的SQL 语句,还需要熟悉应用程序的功能和所

6、做的操作。2使用SQLTRACE工具分析特定SQL语句执行的操作,所使用的RDBMS的功 能和应用程序对这些功能的使用情况。3.在SQLTRACE中使用EXPLAINPLAN命令分析优化器执行这些SQL语句的方 式。下面具体的介绍一下三个步骤:1.熟悉应用程序管理员不仅需要了解 SQL 语句,还需要了解这些 SQL 语句的执行效果。首 先,需要将不同的 SQL 语句形成表格并确定每条 SQL 语句对数据库中每个表的 访问次数。这个表以可视化方式告诉管理员用户对数据库中哪些表的访问最为频 繁。这个表为管理员确定哪些 SQL 语句影响了哪些表提供了一个很好的快速参 考。管理员还可进一步深化这种方法

7、, 并将该表中的 SQL 语句分成不问的类型, 比女口 SELECT语句、INSERT语句、UPDATE语句和DELETE语句等等。如果应 用程序是在脱离实际应用背景的情况下开发的,那么这种方法可能是不现实的。2. 使用 SQLTRACE 分析 SQL 语句通过在 SQL 语句上执行 SQLTRACE 工具,管理员可收集到与所有 SQL 语 句执行操作有关的大量极具价值的信息。 SQLTRACE 提供了如下一些非常有价 值的信息:(1)解析、执行和返回数据的次数(2)CPU 时间和执行时间(3)物理读和逻辑读操作次数(4)处理的记录数量(5)库缓冲区错误次数管理员可用这些信息确定哪些 SQL语句效率较高,哪E些SQL语句效率较低。 这些信息可能会为管理员指出调整 SQL 语句的方向。为提高效率,可能不得不 修改这些 SQL 语句。通过使用 EXPLAINPLAN 命令,管理员可能会发现从其他 方面提高 SQL 语句效率的方法。3. 使用 EXPLAINPLAN 命令分析 SQL 语句通过将EXPLAINPLAN命令的执行结果作为SQLTRACE报表的一部分,管 理员可获得关于 ORACLE 如何执行 SQL 语句的更为详细的信息。通过EXPLAINPLAN 命令获得的信息 (以及通过 SQLTRACE 获得的信息 )能帮助管理 员判断 SQL 语句的执行效率。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论