动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章

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

作者来源: 
阅读 1458 人次 , 2006-5-11 14:54:00 


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

 

3.2.3     可用CBO模式

CBO有两种运行模式:ALL_ROWS和FIRST_ROWS.

FIRST_ROWS的目标是尽可能最快的返回行.这种模式告诉优化器响应时间是最重要的。它偏好嵌套连接方式. FIRST_ROWS也以考虑成本为主要规则来处理行.通常规则是使用索引的计划而不是使用全表扫描的计划作为访问路径,ORDER BY子句导致索引访问,等等

从9i版本起,在First提示中行的数量可以在参数中设置,FRIST_ROWS_N(N可以是1,10,100 或者1000),随不同应用程序的需求而设置

ALL_ROWS在返回输出结果以前,对给定的查询处理所有的行。它迫使优化器考虑最少的资源占用和最佳的吞吐量. ALL_ROWS更喜欢排序合并操作

对于一个OLTP系统, FIRST_ROWS对于快速响应时间是一个理想的选项.

对于批处理方向的应用程序意味着使用ALL_ROWS.注意,以最快响应时间的返回第N行的计划可能不是一个理想的计划,如果系统需求获得完整的结果.因此应根据应用程序的需要而决定.

当数据库大小变化时CBO动态调整它的执行路径,因此如果对于同一个应用程序同样的查询,一个数据库设置中运行很好而在另外的数据库中运行不良,你不必要理会.如果在两个数据库中设置和统计资料不同,这个将会发生..为了防止出现这种情况.得考虑使用优化器持久性.稍后章节将会提到.

 

3.2.3     CBO基初术语

当CBO分析语句时,下列术语将会频繁使用

 

Cost(成本)

在CBO中,成本的计算是涉及到每一个操作单位。逻辑上花费多少成本实际上并没有文档化或向外界公布,甚至随版本的不同而发生变化.

 

Cardinality(基数)

索引中单一行的数量和表中行的数量.查询基数是希望返回行的数量.

 

Selectivity(选择性)

  单一值的数量,被索引列的单一值视为选择性.举例来说,如果一个表有10000行,已创建的一个索引在一个列中有4000单一值,那么索引的可选择性为4000/10000*100=40%,在不为空的列上唯一索引的可选择性为100%.

 

Transitivity(传递性)

对于查询,CBO生成额外谓词的处理.它使优化器能考虑额外的执行路径。举例来说,如果在查询中提供了A=B AND B=C的谓词,优化器可能会添加额外的谓词来暗示A=C.

 

Statistics(统计资料)

对于各种不同的数据收集许多必须的信息以支持对象..对于CBO执行计划来说,它是至关重要的。

 

 

Join Methods(连接方法)

Oracle用诸如哈希,合并排序和嵌套连接进行连接.一个查询可能运行的更快相比较其它的其它方法。对于单个的查询应该评估连接方法。

 

FTS(全表扫描)

全表扫描涉及到查询,从第一块到最后分配的块扫描。对于大表是极其昂贵的,应该避免。

 

Index scan(索引扫描)

涉及到通过使用表上一个或更多的索引,一个表上的随机访问.
  
 本文Tagsoracle  优化  网站优化  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Installing Oracle 9iR2 on RHEL AS 3 Step-by-Step
· 下一篇:ORACLE 面试问题-技术篇(1)
· 将Oracle与Developer/2000安装在同机上的步骤
· Informix SQL 的使用技巧
· Oracle数据库技术(19)
· 使用MS SQL7的LINKED SERVER(三)
· Ontape -r 恢复总结(1)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077