概述
环境
系统: Linux AS3.0 + Oracle 9i RAC
Dedicated Server
OLTP 系统
概述
优化器采用的是RULE , 现有一个表tab1, 有字段 a , b , c , d , e . 都是varchar2 类型 , 建立index 有 c 单独索引, a , b ,c 联合索引, 现在有sql 语句 :
select count(*) from tab1 where a=:1 and b=:2 and c=:3;
这个时候oracle使用的是单独索引 c , 而不是三者的联合索引 。原来使用choose 模式的时候使用的却是三者的联合索引,但是choose 模式下我们并没有对表进行分析 。
还有在 RULE 模式下 这个语句中c 字段赋不同的值会有不同速度, 有些慢的几乎执行不出来,有些只需要10多ms . 不知道是否和 c 字段的值的不同分布和不同值的数据量有关系 ?
总结
一个字段,既有复合索引,又有单列索引。如果,条件语句中只有该字段(的原始值)作为条件,则走单列索引;如果条件语句中有该字段和其他复合索引字段,则走复合索引。
还要考虑索引失效的情况!!!
参考文章
http://www.itpub.net/forum.php?mod=viewthread&tid=311555
最后
以上就是爱听歌裙子为你收集整理的Oracle 一个字段既有联合索引,又有单独索引环境概述总结参考文章的全部内容,希望文章能够帮你解决Oracle 一个字段既有联合索引,又有单独索引环境概述总结参考文章所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复