日期:2014-05-16  浏览次数:21005 次

Oracle-索引问题-如何确定小数据量的表
一直有人提到Oracle中简历索引时,对于小数据量表不要创建。建了反而查询慢了。

此表的查询频率,太高。先知道下,多少数量级的表,才算是数据量小的表呢?不需要建立索引,

------解决方案--------------------
其实你建立了索引也没有问题,Oracle会自动优化。Oracle会制定基于统计信息的执行计划(如果没有使用基于规则的情况),根据这个统计信息来判断是否需要使用索引。这个需要根据具体的情况而判断,有的时候表的变化大的情况下,也许这一时候不需要索引,下一时刻就需要使用索引,甚至换了硬件也会出现这种情况。堆表建里的索引不适合做大范围的扫描(比如where条件中小于某个数或者大于某个数这种范围),适合哪种获取的数据结果很少的情况,总之有这样一个规则:查询结果条数/数据总条数这个比值越小,越适合使用索引。如果你的查询结果是百分之十几都没有必要建立索引,如果是百分之小数据点数就有必要建立一个索引。事情着急,没有组织好语言,希望能帮助楼主理解。楼主可以研究下索引原理,我保证你大有收获。呵呵呵。