关于oracle中不走索引问题

问题:工作中明明已经写了索引,在查询中使用了索引做条件可是在解析的时候却依旧全表扫描了。
过程描述:解决问题的过程中进行了各种情况排查,均没有解决。个人理解,是oracle的数据库优化时认为查询过程中要查、读取的数据比较多,所以不值得走索引。相同的环境相同的情况却按照想法走了索引。这导致了我很难分析出问题。最终选择了保守的方式 ----> 强制执行索引
解决方案:
select /*+index(tabName indexName)*/ 
from table1
where ......//各种查询条件...

注: 在这种情况下就可以实现如果sql没有默认按照索引查询我们就可以强制让sql按照索引查询。
但是存在一个问题 在我们的 /+index(表名 索引名)/ 这个时,如果我们的表起了别名,那么表名位置就要写别名,不然将会不识别。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐