网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle字符值的比较和储存.
.请问这是怎么回事??如何解决.
.怎样制作可执行的java程序.
.今天终于在rh9上成功安装了Oracl.
.关于oracle存储过程的若干问题备.
.ORACLE SQL性能优化系列 (四).
.获得Redo Block Size的非典型方法.
.重建Oracle数据库控制文件的简单.
.如何处理Oracle中TEMP表空间满的.
.ORACLE的PL/SQL二.
.Linux 使用技巧33条.
.Oracle Fail Safe Step-By-Step .
.ORACLE ORA-1693错误以及表和索.
.数据库 Oracle 11g 正式发布.
.Java开发中使用Oracle数据库的注.
.long类型的使用限制问题.
.Oracle数据库中行迁移/行链接的问.
.基于Oracle Spatial的时态空间数.
.提高ORACLE数据库系统import性能.
.Oracle JOB的建立,定时执行任务.

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

发表日期:2008-2-9



  
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找到
涉及到柱状图信息的数据词典以后将会讨论. (待续) right">(出处:清风软件下载学院)
上一篇:oracle 9i 的内存泄漏问题 人气:1001
下一篇:Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.1 人气:983
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐