转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
OracleOptimizer:迁移到使用基于成本的优化器-----系列1.2         ★★★★

OracleOptimizer:迁移到使用基于成本的优化器-----系列1.2

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1157 更新时间:2009/4/22 23:22:23

Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.2

3.2基于成本的优化器(CBO)

基于成本优化器遵循计算代价的方法学。所有的执行计划随成本标识,优化器选择成本最低的一个。在执行计划中,较高的成本将意味着较高的资源。成本越低,对查询来说越高效。
CBO使用所有存储在数据字典中可用的统计资料信息和柱状图,用户提供提示和的参数设置来达成使用的成本,CBO生成所有可能访问方法的排列然后选择最合适的。排列的数量依赖于查询中出现的表数量,有时能达到约80,000个排列甚至更多,请参考系列的第二部分参数章节来设置相关参数。
CBO也可能完成诸如查询转换、视图合并或转换的操作,增加join谓词等等。
这将改变原始语句并改变正存在或者是新添加的谓词,得自新的访问计划的所有的这些目的会比原来存在的好些。注意转换并不影响返回的数据,而仅仅是执行路径,请参考系列第二部分参数章节相关联的信息。

3.2.1统计资料

统计资料按顺序提供了准确的输入以供CBO正常工作;生成的数据存储在对象中并且包括诸如表中行的数量、列中单一值、索引中页的块数等等信息。统计资料越准确,优化器提供的结果越高效。请参考本系列第三部分生成统计资料章节中怎样生成这些信息和如何最好地维持它。统计资料可能是精确的或估计的,它用COMPUTE 子句分析在对象中所有的数据,它将给优化器精确的信息以工作并且达到完美的执行计划。
用ESTIMATE子句,将会分析在对象中提及的样本大小的数据内容从而生成统计资料,样本大小会被指定成随机分析的行的数量或者行的百分比从而生成统计资料,也可以指定可选的块样例,如果系统中存在巨额表数据,它将节约时间。
好的执行计划的前提依赖于估计值和精确值有多接近,可以试验一下设置不同的样本大小来达到适合的目标或对不同类型的表产生不同的评估级别,这种思想对达到接近精确统计是相当可行的。
统计资料存储在所有者为SYS用户的数据词典中,下面的视图显示了表、列,索引的收集统计信息.
表:
DBA_TABLES

NUM_ROWS –行的数量
BLOCKS – 已用的块数量
EMPTY_BLOCKS –未使用的空块数量
AVG_SPACE – 分配给表的平均自由空间(以字节计),考虑所有空的和自由的块.
CHAIN_CNT – 链连或移动的行的数量
AVG_ROW_LEN –以字节计的平均行的长度
LAST_ANALYZED – 上次表分析的日期
SAMPLE_SIZE –提供给ESTIMATE统计的样本大小,对于COMPUTE则等于NUM_ROWS列的值.
GLOBAL_STATS –对于分区表, YES –收集统计资料将作为一个整体, NO –收集统计资料将估计表
USER_STATS –如果用户指明为表设置统计,则为YES
对于一个表的单独分区的统计资料从DBA_TAB_PARTITIONS可以找到,簇统计资料从DBA_CLUSTERS可以找到.

DBA_TAB_COLUMNS
NUM_DISTINCT – 单一值的数量
LOW_VALUE –最小值
HIGH_VALUE – 最高值
DENSITY – 列的聚集度.
NUM_NULLS –涉及列空值的记录数
NUM_BUCKETS – 柱状图中柱的数量,参考柱状图章节
SAMPLE_SIZE –ESTIMATE统计提供的样本大小,如果是COMPUTE则等于全部行数
LAST_ANALYZED -上次表分析的日期
DBA_TAB_COL_STATISTICS 显示相似的数据,–对于分区表列统计资料从DBA_PART_COL_STATISTICS和DBA_SUBPART_COL_STATISTICS可以找到
索引
DBA_INDEXES
BLEVEL –索引的深度,从根级到叶级
LEAF_BLOCKS –页级块的数量.
DISTINCT KEYS – 单一键值的数量
AVG_LEAF_BLOCKS_PER_KEY –每一个单一键值出现的平均数量对于独特索引应该为1
AVG_DATA_BLOCKS_PER_KEY –单一键值指向的表中块的平均数量
CLUSTERING_FACTOR –决定行按索引排序的总数.如果数量靠近块的数量,则该表是按照索引顺序排序的,也就是说,页未级的的全部指向表中同一块的行.如果索引与行数接近,索引会随机排序, 也就是说, 页未级的的全部是分散指向多个块的行。  
NUM_ROWS – 索引行数
SAMPLE_SIZE - ESTIMATE统计提供的样本大小,如果是COMPUTE则等于全部行数
LAST_ANALYZED -上次表分析的日期
GLOBAL_STATS对于分区表, YES –收集统计资料将作为一个整体, NO –收集统计资料将估计表
USER_STATS如果用户指明为表设置统计,则为YES
PCT_DIRECT_ACCESS –索引组织表的次要索引,有效猜测行的百分比
单一分区索引统计可从DBA_IND_PARTITIONS 和DBA_IND_SUBPARTITIONS找到
涉及到柱状图信息的数据词典以后将会讨论. (待续)

 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台