ORACLE-SQL优化手册

ORACLE-SQL优化手册

ID:37812962

大小:118.50 KB

页数:16页

时间:2019-05-31

ORACLE-SQL优化手册_第1页
ORACLE-SQL优化手册_第2页
ORACLE-SQL优化手册_第3页
ORACLE-SQL优化手册_第4页
ORACLE-SQL优化手册_第5页
资源描述:

《ORACLE-SQL优化手册》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、ORACLE-SQL优化手册一、SQL语句的易读性2二、ORACLE的执行优化器和执行路径21.执行优化器22.优化器模式23.查看执行路径的方法34.理解执行路径3三、索引的使用61.索引基础知识62.建立正确有效的索引的经验73.索引无法被使用的情况74.ORACLE9I索引新特性85.与索引相关的数据库参数9四、使用关系运算符101.IS NULL 与 IS NOT NULL102.IN和EXISTS113.NOTIN和NOTEXISTS114.<>(不等于)115.>及<(大于或小于操作符)126.LIKE操作符12

2、五、SQL子查询131.理解子查询132.使用子查询的原则133.使用子查询常见问题134.子查询的类型14六、常用优化方法151.使用批量绑定(BULKBINDING)152.Orderby语句153.消除对大型表行数据的顺序存取154.优化包含视图的SQL语句16一、SQL语句的易读性编写SQL语句的有很多需要注意的地方,在这里只谈SQL的易读性问题,好的SQL语句总是具有好的易读性。ØSQL语句是数据库程序最主要的组成部分,SQL语句的易读性也就成为数据库程序中最重要的环节之一;Ø良好的语句结构带来的好的易读性,也会提

3、高SQL的解析速度Ø能体现出开发人员对SQL语句性能的理解程度。Ø能体现出开发人员对数据库设计的理解程度,不理解数据库的设计,也写不出好的SQL语句。因此,注意SQL书写的易读性,也是编写好的SQL语句的基础,为此,建议大家养成良好的书写习惯。二、ORACLE的执行优化器和执行路径1.执行优化器Oracle有两种执行优化器,一种是RBO(RuleBasedOptimizer)基于规则的优化器,这种优化器是基于sql语句写法选择执行路径的;另一种是CBO(CostBasedOptimizer)基于规则的优化器,这种优化器是Or

4、acle根据统计分析信息来选择执行路径,如果表和索引没有进行分析,Oracle将会使用RBO代替CBO;如果表和索引很久未分析,CBO也有可能选择错误执行路径,不过CBO是Oracle发展的方向,自8i版本来已经逐渐取代RBO.ORACLE10版本只支持CBO方式。2.优化器模式1、optimizer_mode=first_rows――相对全表扫描访问,这个优化模式更注重索引访问。当你想要一个查询以最快的速度返回结果行时,即使它的逻辑输入输出总量比全表扫描高,也要使用这个模式在线访问系统一般都使用这个模式,因为终端用户想要尽

5、快地看到第一页查询结果。2、optimizer_mode=all_rows――这个优化模式更注重全表扫描(特别是并发全表扫描),因为在这种情况下服务器资源的开销最小。这个模式一般被用于批处理进程和数据仓库中,它们的目标都是使服务器消耗的资源最小化。3、optimizer_mode=first_rows_n――从Oracle9i开始,又有一种新的优化模式针对某些返回小结果集的查询进行优化。其取值范围是first_rows_1,first_rows_10和first_rows_100,使用这些参数值可以确保Oracle能够优化这

6、类SQL。3.查看执行路径的方法1.sql_trace执行情况的性能统计、实际的查询方案启动sql_tracea)altersessionsetsql_trace=true

7、falseb)sys.dbms_system.set_sql_trace_in_session允许在数据库中为任何已有会话设置sql_trace开和关c)察看trace文件tkproftracefileoutputfile[explain=][table=][print=][insert=][sys=][sort=]2.explainplansetsta

8、tement_id='test'forsql语句不执行sql语句,只显示执行计划,查看plan_table表即可3.ALTERsessionsetoptimizer_goal=RULE;4.理解执行路径下面就执行路径中显示的操作做具体的说明:1.表操作1)TableAccessFull(全表扫描)2)TableAccessbyRowID(基于RowID的访问)     --RowID记录了数据行的物理存储位置;     --Oracle使用索引将数据值与RowID相关联,从而与数据物理位置相关联。2.Index操作:1)In

9、dexuniquescan a)首先通过insexuniquescan操作访问列索引;b)从索引返回与相匹配的RowID值,然后利用此RowID值通过TableAccessbyRowID操作来查询表。2)Indexrangescan如果基于一个值的范围查询或者利用一个非唯一索引进行查询,则

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

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

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