SQL 优化部分说明
假设表的字段上有索引,当根据这个字段做查询时,却发现Oracle并没有使用索引? 并且查询条件没有限制索引。 那么Oracle 为什么不走索引?
在CBO 的优化器下,都是根据Cost来选择执行计划,当索引的选择性太低或者Clustering Factor 值太高,这些都可能会造成过高的cost值,
虽然在这种情况下走索引的物理读会明显很低,但是Oracle不能理解,因为它是基于CBO的,Oracle 在执行计划里会选择全表扫描来代替使用索引,这样就造就了低效的SQL.
具体参考:
Oracle Index Clustering Factor 说明
http://blog.csdn.net/tianlesoftware/article/details/6585453
Oracle 索引的维护
http://blog.csdn.net/tianlesoftware/article/details/5680706
Oracle Statistic 统计信息 小结
http://blog.csdn.net/tianlesoftware/article/details/4668723
Oracle alter index rebuild 说明
http://blog.csdn.net/tianlesoftware/article/details/6538928
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22779291/viewspace-701367/
,如需转载,请注明出处,否则将追究法律责任。