Oracle优化器模式与Oracle索引优化规则.ppt

Oracle优化器模式与Oracle索引优化规则.ppt

ID:51260745

大小:101.00 KB

页数:39页

时间:2020-03-20

Oracle优化器模式与Oracle索引优化规则.ppt_第1页
Oracle优化器模式与Oracle索引优化规则.ppt_第2页
Oracle优化器模式与Oracle索引优化规则.ppt_第3页
Oracle优化器模式与Oracle索引优化规则.ppt_第4页
Oracle优化器模式与Oracle索引优化规则.ppt_第5页
资源描述:

《Oracle优化器模式与Oracle索引优化规则.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、Oracle优化器介绍.Oracle索引介绍.SQL优化规则介绍.索引优化规则介绍.Oracle优化器模式:Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的.Oracle优化器(Optimizer)是Oracle在执行SQL之前分析语句的工具.Oracle的优化器有两种优化方式:基于规则的优化方式(Rule-BasedOptimization,简称为RBO)和基于代价的优化方式(Cost-BasedOptimization,简称为CBO).RBO方式︰优化器在分析SQL语句时,所遵循的

2、是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引.CBO方式︰CBO是看语句的代价,这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是你在做analyze后才出现的.在Oracle8及以后的版本,Oracle列推荐用CBO的方式。优化器的优化模式(OptermizerMode):包括Rule,Choose,Firstrows,Allrows这四种方式.Rule:不用多说,即走基于规则的方式。rboChoose:指的是当一

3、个表或或索引有统计信息,则走CBO的方式,如果表或索引没统计信息,表又不是特别的小,而且相应的列有索引时,那么就走索引,走RBO的方式。FirstRows:它与Choose方式是类似的,所不同的是当一个表有统计信息时,它将是以最快的方式返回查询的最先的几行,从总体上减少了响应时间。对于排序分页页显示这种查询尤其适用.AllRows:也就是我们所说的Cost的方式,当一个表有统计信息时,它将以最快的方式返回表的所有的行,从总体上提高查询的吞吐量。没有统计信息则走基于规则的方式.查看缺省的Oracle优化器:SQL>showparametersoptimizer_mode;可以在init文件

4、中对整个instance的所有会话设置.也可以单独对某个会话设置:SQL>ALTERSESSIONSEToptimizer_mode=FIRST_ROWS;查看统计信息:1.selecttt.table_name,tt.num_rows,tt.blocks,tt.empty_blocks,tt.avg_row_lenfromdba_tablesttwherett.owner='SCOTT';2.selectttt.index_name,ttt.num_rows,ttt.distinct_keys,ttt.avg_leaf_blocks_per_key,ttt.clustering_fac

5、torfromdba_indexestttwherettt.owner='SCOTT';人工进行统计:对某一个用户下的所有表和索引执行统计分析:executedbms_stats.gather_schema_stats(ownname=>‘SCOTT',cascade=>true);对单个表执行统计分析:EXECUTEdbms_stats.gather_table_stats(ownname=>‘SCOTT',tabname=>‘EMP',estimate_percent=>50,cascade=>true).从OracleDatabase10g开始,Oracle在建库后就默认创建了一个

6、名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息,调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息.默认情况下在工作日晚上10:00-6:00和周末全天开启.一起运行的还有另外一个Job:AUTO_SPACE_ADVISOR_JOB.可以通过以下查询这个JOB的运行情况:select*fromDba_Scheduler_JobswhereJOB_NAME='GATHER_STATS_JOB'.关闭自动统计功能:SQL>execBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');O

7、racle索引介绍Oracle索引简介索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据(加快查询);索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。查询DBA_INDEXES视图可得到表中所有索引的列表,注意只能通过USER_INDEXES的方法来检索模式(schema)的索引。访问USER_IND_COLUMNS视图可得到一个给定表中被索引

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

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

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