基于ORACLE的查询优化_第1页
基于ORACLE的查询优化_第2页
基于ORACLE的查询优化_第3页
全文预览已结束

下载本文档

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

文档简介

1、.:.;基于ORACLE的查询优化一、DBMS查询规那么查询优化是在查询执行引擎生成一个执行战略的过程中,尽量使查询的总开销和总时间到达最小。任何关系数据库都有一套处理查询的规那么,而各种关系数据库查询的过程稍有所区别,但是根本的操作思想和过程是一致的。DBMS的查询规那么普通分为以下几个过程:语法分析与翻译处置;查询优化处置;执行。 根本SQL查询语句语法分析与翻译结果输出相关数据的统计信息优化器 执行数 据图1 DBMS查询规那么图1.语法分析与翻译处置 查询处置开场之前 ,系统必需在扩展关系代数的根底上将查询语句翻译成可运用的方式,为此这一阶段完成两个主要的功能:一是检查查询语句语法的正

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

3、,大多数DBMS(如ORACLE、SYBASE、SQL SERVER等)都是采用基于代价的优化方法,优化器从数据字典中获取许多统计信息,根据不同的算法估计出不同查询规划的代价,然后选择一个较优的规划。对于ORACLE,在ORACLE7之前,主要是运用基于规那么的优化器RULE BASED OPTIMIZATION (简称RBO)。从ORACLE8开场,ORACLE把一个代价引擎(COST ENGINE)集成到数据库内核中,用来估计每个执行方案需求的代价,该代价将每个执行方案所耗费的资源进展量化,从而CBO可以根据这个代价选择出最优的执行方案,即基于代价的优化器COST BASED OPTIMI

4、ZATION(简称CBO)。要留意的是:虽然CBO的功能随着ORACLE新版本的推出,功能越来越强,但它不是能包治百病的神药,否那么就不再需求DBA了。由于一系列要素都会影响语句的执行,优化器综合权衡各个要素,在众多的执行方案中选择以为是最正确的执行方案。然而,运用设计人员通常比优化器更知道关于特定运用的数据特点。无论优化器多么智能,在某些情况下开发人员能选择出比优化器选择的最优执行方案还要好的执行方案,这是需求人工干涉数据库优化的主要缘由。现实阐明,在某些情况下,确实需求DBA对某些语句进展手工优化。二SQL语句优化步骤数据库系统的生命周期可分为设计、开发和废品三个阶段。在这三个阶段都可以提

5、高查询速度。由于设计阶段进展数据库性能优化的本钱最低,收益最大,因此在设计阶段就应该选择合理的数据库设计方法。而在数据库系统的开发和废品阶段那么需对运用程序进展优化:通常运用程序可分为两个方面源代码和SQL语句。源代码的优化由于涉及程序逻辑的改动,因此优化源代码要在时间本钱和风险本钱上投入较高代价,因此对SQL语句的优化尤为重要3。调整现有运用程序中SQL语句的最好方法是采取以下步骤4:1.熟习运用程序。管理员不仅需求熟习特定的SQL语句,还需求熟习运用程序的功能和所做的操作。2.运用SQL TRACE工具分析特定SQL语句执行的操作,所运用的RDBMS的功能和运用程序对这些功能的运用情况。3

6、.在SQLTRACE中运用EXPLAIN PLAN命令分析优化器执行这些SQL语句的方式。下面详细的引见一下三个步骤:1.熟习运用程序 管理员不仅需求了解SQL语句,还需求了解这些SQL语句的执行效果。首先,需求将不同的SQL语句构成表格并确定每条SQL语句对数据库中每个表的访问次数。这个表以可视化方式通知管理员用户对数据库中哪些表的访问最为频繁。 这个表为管理员确定哪些SQL语句影响了哪些表提供了一个很好的快速参考。管理员还可进一步深化这种方法,并将该表中的SQL语句分成不问的类型,比如SELECT语句、INSERT语句、UPDATE语句和DELETE语句等等。假设运用程序是在脱离实践运用背

7、景的情况下开发的,那么这种方法能够是不现实的。2.运用SQL TRACE分析SQL语句 经过在SQL语句上执行SQL TRACE工具,管理员可搜集到与一切SQL语句执行操作有关的大量极具价值的信息。SQL TRACE提供了如下一些非常有价值的信息:1解析、执行和前往数据的次数2CPU时间和执行时间3物理读和逻辑读操作次数4处置的记录数量5库缓冲区错误次数 管理员可用这些信息确定哪些SQL语句效率较高,哪些SQL语句效率较低。这些信息能够会为管理员指出调整SQL语句的方向。为提高效率,能够不得不修正这些SQL语句。经过运用EXPLAIN PLAN命令,管理员能够会发现从其他方面提高SQL语句效率的方法。3.运用EXPLAIN PLAN命令分析SQL语句 经过将EXPLAIN PLAN命令的执行结果作为SQL TRACE报表的一部分,管理员可获得关于ORACLE如何执行SQL语句的更为详细的信息。经过EXPLAIN PLAN命令获得的信息(以及经过SQL TRACE获得的信息)能协助 管理员判别SQL语句的执行效

温馨提示

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

评论

0/150

提交评论