原来执行的语句是走索引的,在什么情况下会变得不走索引

问题细节,今天早上突然数据查询很慢,进过查询问题锁定,发现是之前执行索引的语句现在不执行索引了,经过测试锁定在这个表的一个字段上,单独运行这个字段进行查询时还是执行索引的如下图但是添加其他条件后就不执行索引而是进行全表查询表中索引建立情况为:我添加过一次表空间:在...显示全部

问题细节,今天早上突然数据查询很慢,进过查询问题锁定,发现是之前执行索引的语句现在不执行索引了,经过测试锁定在这个表的一个字段上,单独运行这个字段进行查询时还是执行索引的如下图

QQ截图20160113115033.jpg



但是添加其他条件后就不执行索引而是进行全表查询


表中索引建立情况为:


我添加过一次表空间:


在线等答案,求大神们帮组

收起
参与17

查看其它 5 个回答星陨无痕的回答

星陨无痕星陨无痕技术经理北京世纪东方国际旅行社
该问题的原因是因为数据库运行时间长了后表中的聚簇印子过大,导致Oracle优化器认为如果使用索引进行查询比进行全表查询还要消耗效率,所以直接使用全表查询而不是使用索引;

后续我处理的办法是对使用索引字段的条件添加更细致的判定,使其减少资源消耗,当其资源消耗率降低后自然就运行索引了。

旅游 · 2016-01-25
浏览1382

回答者

星陨无痕
技术经理北京世纪东方国际旅行社
擅长领域: Linux关系型数据库服务器

星陨无痕 最近回答过的问题

回答状态

  • 发布时间:2016-01-25
  • 关注会员:7 人
  • 回答浏览:1382
  • X社区推广