sql语言级别的优化

sql语言级别的优化

ID:8977770

大小:614.50 KB

页数:12页

时间:2018-04-13

sql语言级别的优化_第1页
sql语言级别的优化_第2页
sql语言级别的优化_第3页
sql语言级别的优化_第4页
sql语言级别的优化_第5页
资源描述:

《sql语言级别的优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、SQL语言级别的优化ORACLE调整层次结构SQL的执行过程对sql解析过程影响的参数query_rewrite_enablecursor_shareing(直接量

2、绑定变量、force

3、exact)解释:force:如果直接量不影响语句的意义,force选项强制那些除了直接量完全相同的语句共享一个指针exact:完全一样的sql语句共享一个指针。oracle9i中的窥视功能解释。减少解析sql语句的技术:1、将sql封装在存储过程中2、在sql中避免使用直接量执行计划的目的:速度最快、资源最少OR

4、ACLE的连接方法1、嵌套循环连接:从驱动表读取记录,将结果集嵌套第二个表的匹配子集中。看下面的执行计划select/*+rule*/ename,dnamefromemp,deptwhereemp.deptno=dept.deptno1、散列连接将驱动表加载到RAM,在内存中建立一个基于散列连接算法的散列表,得使用散列技术连接第二个表。如果表的大小不同,而且小表的大小接近hash_area_size的可用内存。通过altersession修改hash_area_size的大小select/*+ord

5、ereduse_hash(emp,dept)*/ename,dnamefromemp,deptwhereemp.deptno=dept.deptno2、排序合并联结适合情况:1、连接字段没有索引2、查询返回两个表的大部分记录3、CBO认为全表扫描比索引扫描要快select/*+use_merge(emp,dept)*/ename,dnamefromemp,deptwhereemp.deptno=dept.deptnocreatetabledept1asselect*fromdeptselect/*+

6、use_merge(emp,dept1)*/ename,dnamefromemp,dept1whereemp.deptno=dept1.deptnoandempno<7000基于规则的优化器RBO、基于成本优化器CBO(choose

7、first_rows

8、all_rows)RBO的原则:1、总以为索引最快2、总是从驱动表开始(认为from后面最后一张表为驱动表(数据最少))3、只有在不可避免的情况下才使用全表扫描4、任何索引都有可以采用….CBO的原则1、表数据2、记录的条数3、物理数据块的数目4、

9、索引数据5、索引中唯一值的数目6、索引中值的分布7、索引的可选择性8、索引朱的因素choose:如果有统计数据,则分析统计数据以及一些系统参数决定采用first_rows还是full_rows如果没有统计数据,则采用rule如果有的表有统计数据,而有的表没有统计数据,则….,应该避免这种情况。First_rows让终端用户尽快看到一些数据All_rows保证总体查询最快。基于成本的优化器的并不是总能做出正确的选择(通过hint修改执行计划)为CBO收集统计信息的语法:analyzetabletabl

10、e_namecomputestatistics(forallindexedcolumns)analyzetabletable_nameestimatestatisticssample5000rows(forallindexedcolumns)用sqlplus生成分析的sql脚本analyzetableempestimatestatisticssample500rowsanalyzeindexemp_mgrcomputestatistics用dbms_stats.gather_table_statsd

11、eclareiinteger;begindbms_stats.gather_table_stats(ownname=>,tabname=>,partname=>,estimate_percent=>,degree=>);dbms_stats.gather_index_stats(ownname=>,indname=>,partname=>,estimate_percent=>,degree=>);end;SQL的内部处理:Sql的SGA的统计资料SELECTname,valuefromv$sysst

12、atwherenamelike'table%'NAMEVALUE1tablescans(shorttables)108532tablescans(longtables)283tablescans(rowidranges)04tablescans(cachepartitions)05tablescans(directread)06tablescanrowsgotten15102307tablescanblocksgotten356868tablefetchbyrowid

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

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

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