OraclePerformanceTuning入门手册V.doc

OraclePerformanceTuning入门手册V.doc

ID:49333774

大小:278.00 KB

页数:16页

时间:2020-02-29

OraclePerformanceTuning入门手册V.doc_第1页
OraclePerformanceTuning入门手册V.doc_第2页
OraclePerformanceTuning入门手册V.doc_第3页
OraclePerformanceTuning入门手册V.doc_第4页
OraclePerformanceTuning入门手册V.doc_第5页
资源描述:

《OraclePerformanceTuning入门手册V.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ORACLESQLPerformanceTuning1序言32影响SQLPerformance的关键因素和配置:32.1关于执行计划32.2ORACLE优化器32.3结合BenQOracleERP62.4跟踪SQL实际运行的Cost72.5小结73SQL语句的Tuning经验分享:83.1绝大多数情况下notexists比notin效率高83.2UNIONALL效率比UNION高很多83.3一些很耗资源的SQL操作,在不必要的情况下不要使用83.4通常联接查询比子查询的效率要高很多103.5用table索引(index)栏位去做Table间的关联,可避免费时的全表扫描1

2、03.6在View中尽量不要使用Package/function来得到栏位值,113.7通过ROWID访问表113.8必要时,可在OracleStandardTable上加索引123.9合理排列WHERE子句中的连接顺序.123.10合理排列FROM中的表名133.11用WHERE子句替换HAVING子句133.12关于使用索引(Index)的一些注意点133.13识别“低效运行”的SQL语句153.14一些特别的用法,不一定对提升Performance有效,此处仅列其使用方法,以供借鉴153.15Query以外的SQL语句的Tuning184SQL语句的Tuning建

3、议步骤185金玉良言191序言本文档基于SQL_Performance_Tuning_Report_1.0.doc版本进行了更新和补充,由PTEG(PerformanceTuningExpertGroup,2006-10-5成立)小组进行重新整理,生成了该1.1版本。这份文档主要将影响SQLPerformance的因素做个基础的阐述,再将大家在平时写SQL积累的经验做个总结。希望本文档可以成为一份有价值的入门级资料。2影响SQLPerformance的关键因素和配置:OracleDatabase上的设置对Performance的影响很大,如SharedPoolSize、

4、BufferCacheSize、SGAStructures、DatabaseI/OConfiguration、RollbackSegments等等,这些是DBA要更据实际状况去Tunning的部分,我们暂不详细讨论,DBA可对这块进行补充;这份文档我们将重点放在影响SQL执行效率的一些关键因素和设置上。2.1关于执行计划我们在平时工作中用到大量的View,View中SQL的写法对performance的影响很大,首先有必要了解一条SQL语句是如何被执行的。当SQL语句进入Oracle的缓存后,在该语句准备执行之前,DBMS将执行下列步骤:1.SQL语法检查:检查SQL语

5、句拼写是否正确和词序。2.SQL语义分析:核实所有的与数据字典不一致的表和列的名字。3.生成执行计划:使用优化规则和数据字典中的统计表来决定最佳执行计划。4.建立可执行的二进制代码:基于执行计划,Oracle生成二进制执行代码。5.抓取并返回需要的数据。其中第三步生成执行计划非常关键,所谓执行计划,就是对一个查询任务,做出一份怎样去完成任务的详细方案。对于查询而言,我们提交的SQL仅仅是描述出了我们的目的,但Oracle内部怎么去得到这些数据,是由数据库DBMS来决定的。所以执行计划产生的好坏直接影响SQL运行的Performance。我们平时对SQL做一些Tuning

6、,为了得到相同的数据而去尝试用不同的SQL写法,目的就是能让Oracle根据你的语句产生一个更好的执行计划,从而得到更好的performance。2.2ORACLE优化器在不同的情况下,同一条SQL可能有多种执行计划。但理论上在某一时点,一定只有一种执行计划是最优的、花费时间是最少的。执行计划的工作是由优化器(Optimizer)来完成的,那优化器是依据什么讯息去创建出最合理的执行计划呢?回答这个问题前先要了解一下ORACLE的优化器:2.2.1ORACLE优化器的优化方式ORACLE优化器的优化方式有两大类,即基于规则的优化方式(Rule-BasedOptimizat

7、ion,简称为RBO)和基于代价的优化方式(Cost-BasedOptimization,简称为CBO)。A、RBO方式:优化器在分析SQL语句时,根据数据库中表和索引等定义信息,遵循的是Oracle内部预定的一些规则。比如我们常见的:当一个where子句中的一列有索引时去走索引而不走全表扫描。B、CBO方式:依词义可知,它是看语句的代价(Cost)了。基于代价的查询,数据库根据搜集的表和索引的数据的统计信息(统计信息通过analyze命令或者使用dbms_stats包来搜集)综合来决定选取一个数据库认为最优的执行计划(实际上不一定最优)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。