中国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
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
对参数 optimizer_index_cost_adj 的一点理解_041009
作者:未知 时间:2004-10-09 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

参数optimizer_index_cost_adj设定了通过索引扫描和全表扫描之间的代价消耗关系,其默认值为100,表示ORACLE在计算查询成本时,通过索引查找和全表扫描成本相等。该参数值越小,表明通过索引查找的代价越小,反之则越大。

    通过以下试验,演示该参数的用法。

1) 查看参数optimizer_index_cost_adj的当前值

SQL> conn / as sysdba

 

 

 

 

Connected.

 

 

 

 

 

SQL> show parameter optimizer_index_cost_adj

 

 

 

 

 

 

 

 

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ---------

optimizer_index_cost_adj             integer     100

--参数当前的默认值为100

 

SQL>

 

 

 

 

 

 

SQL> select isses_modifiable,issys_modifiable

 

  2  from v$parameter

 

 

 

 

  3  where name='optimizer_index_cost_adj';

 

 

 

 

 

 

 

 

 

ISSES ISSYS_MOD

 

 

 

 

 

----- ---------

 

 

 

 

 

TRUE  FALSE

--说明该参数可以在SESSION级别动态改变,

  但不能在SYSTEM级别动态改变

 

 

 

 

 


2) 创建表及索引,并对表进行分析

SQL> conn scott/tiger

 

 

 

Connected.

 

 

 

 

SQL> create table test(a number,b char(10));

 

 

 

 

 

 

 

Table created.

 

 

 

 

 

 

 

 

 

 

SQL>

 

 

 

 

 

SQL> begin

 

 

 

 

  2    for i in 1..10000 loop

 

 

  3      insert into test values(i,to_char(i));

  4    end loop;

 

 

 

 

  5    commit;

 

 

 

 

  6  end;

 

 

 

 

  7  /

 

 

 

 

 

 

 

 

 

 

 

PL/SQL procedure successfully completed.

 

 

 

 

 

 

 

SQL>

 

 

 

 

 

SQL> create index idx_test_a on test(a);

 

 

 

 

 

 

 

Index created.

 

 

 

 

 

 

 

 

 

 

SQL>

 

 

 

 

 

SQL> analyze table test compute statistics

 

  2  for table

 

 

 

 

  3  for all indexes

 

 

 

  4  for all indexed columns;

 

 

 

 

 

 

 

 

Table analyzed.

 

 

 

 

 

 

 

 

 

 

SQL>

 

 

 

 

 


3)将参数optimizer_index_cost_adj设为100,查看相应的执行计划

SQL> set autotrace traceonly explain

 

 

 

SQL> alter session set optimizer_index_cost_adj=100;

 

 

Session altered.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SQL> select * from test where a=1;

 

 

 

 

Execution Plan