您的位置: 首页-> 电脑文摘-> 数据库类-> Oracle-> 正文

为什么基于代价的优化器做出错误选择
作者佚名 来源InterNet 加入时间:2004-11-10

基于代价的优化器(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有更高的命中率,所以它会选择全表扫描。



[文章录入员:tonny]

相关文章
  • 夺取月薪之冠-Oracle认证!
  • Oracle数据安全面面观(2)
  • Oracle数据安全面面观(1)
  • Oracle10g数据库的创建
  • Oracle新技术对Linux意味着什么?
  • 在Oracle里设置访问多个SQL Server
  • 深入分析Oracle数据库日志文件
  • 在ORACLE里用存储过程定期分割表
  • 用Linux完成Oracle自动物理备份
  • Oracle Rman/tivoli-TDP/下数据恢复到节点
  • 相关软件:
  • 利用 DBCA建立 Oracle 9i 资料库
  • Oracle 数据库DBA管理手册
  • Oracle 管理员手册
  • Oracle 官方文档CHM合集-SQL参考手册
  • Oracle WebServer 中文手册
  • Oracle 9i 数据库管理员指南
  • Oracle 9i 数据库管理实务讲座
  • Oracle 9I 入门基础(第02部分)
  • Oracle 9I 入门基础(第01部分)
  • Oracle 9i 官方教材
  • ::PCBOOKCN'ADS::


    ::Oracle::
    ACCESS
    MS SQL
    MySQL
    Oracle
    Foxpro
    PowerBuilder
    Sybase
    其它
    ::阅读排行::
    ·Oracle 常用技巧和脚本
    ·Oracle常用数据字典
    ·Oracle8 数据类型
    ·Oracle 8.1.6 for...
    ·Oracle 基本知识
    ·安装Oracle后,经常使用的修...
    ·怎样快速查出Oracle数据库中...
    ·深入分析Oracle数据库日志文...
    ·Oracle 8.0.4 for...
    ·Oracle10g数据库的创建