欢迎来到天天文库
浏览记录
ID:50609940
大小:59.00 KB
页数:45页
时间:2020-03-12
《Oracle优化常用概念.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Oracle优化常用概念解析常见概念CBO/RBO表连接方式执行计划统计信息和柱状图索引分区表AWR表扫描方式hintCBO/RBO什么是CBO/RBO,工作原理是什么应该使用哪种模式如何查看是哪种模式如何修改优化器模式什么是CBO/RBO,工作原理是什么CBO:cost-basedoptimizer,基于成本的优化器RBO:rule-basedoptimizer,基于规则的优化器CBO需要使用统计信息,据此计算最佳的执行计划;而RBO根据oracle设定好的规则生成执行计划。由于不能窥视到表中
2、数据,RBO往往不能得到合理的执行计划应该使用哪种模式Oracle10g的CBO已经很成熟,推荐使用。Oracle公司也将使用CBO代替RBO,而且RBO对开发人员的要求比较高,因此,CBO是不二选择。如何查看是哪种模式showparameteroptimizer_modeoptimizer_mode的取值包括:rule:RBOchoose:有统计信息时是CBO,否则是RBO,但使用use_hash,all_rows等提示时都是CBOall_rows,first_rows:CBO如何修改优化器模
3、式altersystemsetoptimizer_mode=all_rowsscope=both;scope的值:both、spfile、memory,默认是both表连接方式有哪几种连接方式每种方式的特点、工作原理有哪几种连接方式hashjoinnestedloopmergejoin每种方式的特点、工作原理nestedloop:使用条件:任何连接优点:当有高选择性索引或进行限制性搜索时效率比较高,能够快速返回第一次的搜索结果缺点:当索引丢失或者查询条件限制不够时,效率很低;当表的纪录数多时,效
4、率低。sortmerge:使用条件:主要用于不等价连接,但不包括<>;相关资源:内存、临时空间优点:当缺乏索引或者索引条件模糊时,排序合并连接比嵌套循环有效。缺点:所有的表都需要排序。它为最优化的吞吐量而设计,并且在结果没有全部找到前不返回数据。hashjoin:使用条件:仅用于等价连接;相关资源:内存、临时空间优点:当缺乏索引或者索引条件模糊时,哈希连接连接比嵌套循环有效。通常比排序合并连接快。在数据仓库环境下,如果表的纪录数多,效率高。缺点:为建立哈希表,需要大量内存。第一次的结果返回较慢。
5、执行计划什么是执行计划如何生成执行计划如何看懂执行计划什么是执行计划Oracle执行每一条SQL语句,都必须经过Oracle优化器的评估,选择最佳的执行路径,包括索引的使用、表的访问、表之间的连接等等。如何生成执行计划Pl/sql中按F5,最简单快捷的方式ExplainplanSqltrace,最准确Sql/plusautotrace,包含更多信息如何看懂执行计划没有捷径,多看执行计划,网上查一下具体含义计划开个专题讨论统计信息和柱状图为什么要收集统计信息统计信息包括哪些内容如何查看是否存在统计
6、信息如何收集统计信息什么是柱状图为什么要做柱状图如何生成柱状图为什么要收集统计信息cbo模式下计算cost所需要的信息,统计信息越准确,oracle生成的执行计划越高效,所以要定期收集统计信息统计信息包括哪些内容表:行数、块数、空块数、块的平均剩余空间等表的列:唯一值数、null值数等索引:级数、叶子块数、唯一值数等如何查看是否存在统计信息User_tab_statistics(user_tables也存在相应列)User_ind_statistics(user_indexes也存在相应列)Us
7、er_tab_col_statistics如何收集统计信息analyzetabletb_namecompute
8、estimatestatistics;该方式用于向后兼容execdbms_stats.gather_*oracle建议使用的方式什么是柱状图Oracle的柱状图和web页面展示的柱状图属同一个概念,只是已数据的形式存在而没有直观展示出来而已。每个柱被称为bucket(桶)。柱状图包含了列上的数据分布,大致可理解为列上每个值的记录数,即数据倾斜度。为什么要做柱状图Oracle在选择索引时
9、会检查索引的效率从而确定是否使用索引,而柱状图正是提供了这种信息。如果不做柱状图,oracle就确定不了索引的效率,会倾向于使用索引,可能反而不如做全表扫描来得快如何生成柱状图analyzetabletb_namecompute
10、estimatestatisticsforallindexedcolumns;针对索引列analyzetabletb_namecompute
11、estimatestatisticsforcolumnscol_namesize;针对某一列analyzetabletb_
此文档下载收益归作者所有