Oracle中为number类型字段建立索引的失效问题

各位大神,请教一个Oracle11g中为number类型字段建立索引,当过滤条件使用的值不同,是否走索引的结果就不同的问题。

背景:
我在Oracle11g中建了一张测试表tb_stu,表中有varchar2l类型的name、address等字段,其中最重要的是有个age字段是number类型的,并且只为这个age字段建立了索引:create index "INDEX_STU_AGE" ON "STU" ("AGE");并且手动插入了20万的测试数据,age的值都不为空

疑问:
我执行以下sql查看执行计划时却出现了这样的情况
ora1.png

ora2.png

从以上两图可以看到当age=101时,查询走了索引;当age=1时却不走索引,为什么呢?(数据库中age=101和age=1的记录都为0条)

阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题