BLUESKY
一步一个脚印向前走

ORACLE的优化器共有3种:

a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)

设置缺省的优化器,可以通过对init<SID>.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS

我们可以在SQLPLUS或文件中查询这个字段的当前值:



上面的是文件中的;下面的是用sqlplus查询的:



或者可以使用查询动态视图中的信息:



为了使用基于成本的优化器(CBO, Cost-Based Optimizer) ,你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性

在缺省情况下,ORACLE采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器

如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关. 如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器.


posted on 2007-05-25 16:31 LG 阅读(126) 评论(0)  编辑 收藏 引用 所属分类: Oracle

<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

相册

最新评论