ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 通过例子理解索引的走法

通过例子理解索引的走法

原创 Linux操作系统 作者:prt 时间:2008-11-12 09:10:24 0 删除 编辑


create table test(id int,name varchar2(64),constraint pk_test primary key(id));

insert into test select rownum,object_name from dba_objects; ---5万记录
commit;
----
select id from test where id = 100
index unique scan
----
select id from test where id < 100
index range scan
----
select * from test where id < 100
table access by index rowid
index range scan
----
select id from test
index fast full scan
----
select * from test
table access full

optimizer_index_cost_adj参数对决定走索引还是全表有重要作用
通过set autotrace traceonly来查看某个sql的执行计划
 
不走索引的原因(cbo模式下):
1.类型不匹配
2.条件中包含函数而没有创建函数索引
3.条件中不包括复合索引的前导列,但在hint时,如 select /*+index(tabname,idxname)*/ ...可能会走跳跃索引
4.所选择的行数占的比例过大
5.表修改频繁但没有及时做分析
6.like '%xxx'
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/559237/viewspace-490918/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-05-09

  • 博文量
    61
  • 访问量
    181984