中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.3
作者:未知 时间:2004-01-05 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

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

 

3.2.3     可用CBO模式

CBO有两种运行模式:ALL_ROWSFIRST_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(索引扫描)

涉及到通过使用表上一个或更多的索引,一个表上的随机访问.

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有