



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle-分析及动态采样Oracle 分析及动态采样Oracle 分析及动态采样 之前在说Oracle Optimizer中的CBO时讲到,当表没有做分析的时候,Oracle 会使用动态采样来收集统计信息。 获取准确的段对象(表,表分区,索引等)的分析数据,是CBO存在的基石,CBO的机制就是收集尽可能多的对象信息和系统信息,通过对这些信息进行计算,分析,评估,最终得出一个成本最低的执行计划。 所以对于CBO,数据段的分析就非常重要。Oracle Optimizer CBO RBO/tianlesoftware/archive/2010/08/19/5824886.aspx一 先演示一个示例,来理解分析的作用1.1创建表SQL> create table t as select object_id,object_name from dba_objects where 1=2;表已创建。SQL> create index index_t on t(object_id);索引已创建。SQL> insert into t select object_id,object_name from dba_objects;已创建72926行。SQL> commit;提交完成。1.2查看分的分析及执行计划SQL> select num_rows,avg_row_len,blocks,last_analyzed from user_tables where table_name=T; NUM_ROWS AVG_ROW_LEN BLOCKS LAST_ANALYZED- - - -SQL> select blevel,leaf_blocks,distinct_keys,last_analyzed from user_indexes where table_name=T; BLEVEL LEAF_BLOCKS DISTINCT_KEYS LAST_ANALYZED- - - - 0 0 0 25-8月 -10从查询结果看出,表的行数,行长,占用的数据块数及最后的分析时间都是空。 索引的相关信息也没有,说明这个表和说因都没有被分析,如果此时有一条SQL 对表做查询,CBO 由于无法获取这些信息,很可能生成错误的执行计划,如:SQL> set linesize 200SQL> set autot trace exp;SQL> select /*+dynamic_sampling(t 0) */ * from t where object_id>30;执行计划-Plan hash value: 80339723-| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |-| 0 | SELECT STATEMENT | | 4 | 316 | 0 (0)| 00:00:01 | 1 | TABLE ACCESS BY INDEX ROWID| T | 4 | 316 | 0 (0)| 00:00:01 |* 2 | INDEX RANGE SCAN | INDEX_T | 1 | | 0 (0)| 00:00:01 |-Predicate Information (identified by operation id):- 2 - access(OBJECT_ID>30)SQL>在Oracle 10g以后,如果一个表没有做分析,数据库将自动对它做动态采样分析,所以这里采用hint的方式将动态采样的级别设置为0,即不使用动态采样。 从这个执行计划,看书CBO 估计出表中满足条件的记录为4条,索引使用了索引。 我们对表做一下分析,用结果比较一下。 1.3 分析表及查看分析之后的执行计划分析可以通过两中方式:一种是analyze 命令,如:analyze table tablename compute statistics for all indexes; 还有一种就是通过DBMS_STATS包来分析,从9i 开始,Oracle 推荐使用DBMS_STATS包对表进行分析操作,因为DBMS_STATS 提供了更多的功能,以及灵活的操作方式。 SQL> exec dbms_stats.gather_table_stats(SYS,T);PL/SQL 过程已成功完成。SQL> select blevel,leaf_blocks,distinct_keys,last_analyzed from user_indexes where table_name=T; BLEVEL LEAF_BLOCKS DISTINCT_KEYS LAST_ANALYZED- - - - 1 263 72926 25-8月 -10SQL> select num_rows,avg_row_len,blocks,last_analyzed from user_tables where table_name=T; NUM_ROWS AVG_ROW_LEN BLOCKS LAST_ANALYZED- - - - 72926 29 345 25-8月 -10从上面的结果,可以看出DBMS_STATS.gather_table_stats已经对表和索引都做了分析。 现在我们在来看一下执行计划。 SQL> set autot trace exp;SQL> select * from t where object_id>30;执行计划-Plan hash value: 1601196873-| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《唐代诗歌鉴赏方法与技巧的教学教案》
- 《物理力学基础概念:初二物理力学入门教案》
- 《中华文学经典:《红楼梦》文学赏析教学》
- 值得七年级作文600字7篇范文
- 青春词与古文风:高中文言文教学对比教案
- 摄影比赛活动方案
- 以核心素养为导向的初中历史故事讲解教案
- 公交公司筹款活动方案
- 钻孔桩劳务分包合同
- 公众号开业活动方案
- 海鲜水饺供货合同协议
- 非财务人员的财务管理方法与案例
- 《肺结核的诊断与治疗》课件
- 2025+CSCO淋巴瘤诊疗指南解读课件
- 统编版语文六年级上册第三单元大单元整体教学设计
- 山东临沂历年中考作文题与审题指导(2005-2023)
- 2024年幽门螺杆菌感染基层诊疗指南讲座课件
- 2025-2030中国助听器、植入物和诊断设备行业市场发展趋势与前景展望战略研究报告
- 米哈游的创新创业之路
- 道路保洁台账管理制度
- 全国卫生健康系统职业技能竞赛(预防接种项目)备考试题库-上(单选题部分)
评论
0/150
提交评论