网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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错误:ORA-00235.
.在REDHAD LINUX 9 下安装ORACLE .
.Oracle中使用SQL MODEL定义行间计.
.[范例]如何编写排序菜单sort_pop.
.truncate,delete,drop的异同点.
.oracle817视图中object_type的&#.
.Oracle10g 控制文件的改变.
.说一说如何配置Oracle的MTS part2.
.如何在oracle中导入dmp数据库文件.
.多方面讲解pl/sql编程存在的几个.
.详细介绍 Oracle 9i 的各个技术特.
.oracle 实现 split 函数 (返回数.
.ORACLE里取随机数的几种具体的方.
.Oracle Database 10g:最佳新特性.
.solaris8 下不起图形界面安装ora.
.浅谈备份策略.
.oracle复制应用实例之一.
.数据库考试简介——Oracle认证粗.
.ORACLE性能调整--统计信息的迁移.
.用SYS执行全文索引的建立时出现权.

为什么基于代价的优化器做出错误选择

发表日期:2008-2-9



  基于代价的优化器(CBO)在进行全表扫描时偶然会作出一些错误的选择,这种情况尤其发生在Oracle7和Oracle8之中。有几种情况会导致这个问题,分别如下所示:
  
  
  
  最高使用标记(High water mark)太高:当要在一个表中进行大量的删除时,最高使用标记可能会远远高于实际用到的数据块(block)数量。因此,假如依靠于最高使用标记,CBO经常会错误的调用全表扫描。
  
  错误的优化模式:假如OPTIMIZER_MODE被设置为ALL_ROWS或者CHOOSE,那么SQL优化器会更乐于使用全表扫描。假如想进行快速的OLTP优化,必须首先确认已经将OPTIMIZER_MODE设置成FIRST_ROWS。
  
  贫乏的统计:假如表已经显著的增长,并且没有被重新分析以更新统计数据,那么也许会错误的进行全表扫描,因为CBO认为表长还是像未增长之前那么小。
  
  偏斜的索引:假如一个查询中的候选索引存在偏斜值,那么CBO也许会错误的选择全表扫描。例如,考虑一个查找所有满足条件REGION=SOUTHERN的记录的查询。在Region栏中已经有了一个索引,但是只有1%的条目是Southern region的。在缺少列的柱状图的情况下,CBO不知道Southern region有更高的命中率,所以它会选择全表扫描。
上一篇:Oracle 9i新特性研究系列之六 -- 闪回查询(Flashback Query) 人气:703
下一篇:基于成本的优化器 — 一般错误概念和问题 人气:1079
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐