oracle 怎样添加索引

oracle 怎样添加索引,第1张

对三个字段建立索引

create index Stuname on student(name)

create index Stusex on student(sex)

create index Stugrade on student(grade)

注意的问题,考虑是不是要建立唯一索引(unique),如果有学号的话,可以考虑建立唯一索引引。

再就是对经常查询,但又相对稳定的可以建立聚簇索引,提高查询效率

Oracle查询优化器会感知到你建立的索引,在有对应字段谓词出现的时候就会自动使用。但是在某些情况下Oracle查询优化器则无法使用索引,例如

含有隐式类型转换

使用OR来连接谓词

字段上使用了函数或是表达式

索引扫描代价大于全表扫描

not in

like '%xxx'

强制加索引使用hint即可 例如 select /*+index(table_name,index_name)*/ * from table_name where xxxx

现在的问题是,如果你所查询的字段有索引,表也做过表分析,统计数据是正确的,写法也没问题。CBO会自主判断,选择合适的索引的。hint方式只是在CBO判断出错时,我们人工进行干预执行计划。尽量让CBO自己来工作。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11736007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存