为什么oracle表索引但仍然进行全表扫描?

C.c*_*C.c 5 database oracle performance query-optimization oracle11g

我有一个表'MSATTRIBUTE'有3000K行.我使用以下查询来检索数据,此查询具有不同的执行计划,具有相同的DB数据但在不同的环境中.在一个环境中,它看起来是完全扫描所以查询非常慢,但在另一个环境中它全部使用索引扫描它是相当不错的,每个人都知道为什么它在一个环境中有全表扫描,因为我为它们构建索引,我该怎么办让我成为索引扫描,就像我在环境中测试的那样1.我如何改进这个查询?

Dav*_*dge 3

如果两个表中的行顺序不同,则两个系统中的索引可能具有不同的集群因子,因此索引访问的估计成本也不同。检查表和索引统计信息,包括聚类因子,看看是否存在显着差异。

另外,两个系统的解释计划是否提到动态采样?