Oracle ——概述 CBO 优化器

http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/CBO/Default.aspx

 

基于规则的优化器(rule-based optimizer,RBO)的缺点之一是它遵循一组规则,而且一直是,所有时间内遵循。这导致了一致的执行计划,但往往也导致了低效的执行计划。认识到基于规则的优化器的缺点,Oracle 在 Oracle 7.1 引入了基于成本的优化(cost-based optimizer,CBO)以修正这个问题。

对 Oracle 和我们来说,幸运的是,基于成本的优化器(CBO)在 8i 和 9i 做了更多的改进。更大的“改进”是,Oracle 打算在 Oracle 10i 中去掉 RBO,这就要小心。

基于成本的优化器是一个程序。它的任务是在解析期间分析你的 SQL 语句,确定访问你请求数据的最佳方式。它使用统计信息,这需要 DBA 创建。例如,索引或全表扫描,将是最有效的数据访问方式。根据一些不同的因素来计算,这些因素包括:

  • 被访问表的总行数
  • 被访问列的数据密度
  • 存在的索引以及这些索引的类型和内容
  • 平均的行长度
  • 返回列的类型
  • 各种数据库参数

CBO 将查看所有不同的因素,通过这些不同的可能的访问路径的周期。当通过这些访问路径时,CBO 将分配给这些路径代价。一旦 CBO 完成分析,它就返回具有最低代价的计划来解析,并使用该计划。

posted @ 2012-09-09 18:50  船长&CAP  阅读(384)  评论(0编辑  收藏  举报
免费流量统计软件