与dbms_xplan.display混淆

时间:2014-08-02 02:39:28

标签: sql oracle oracle11g

我正在使用oracle 11g。刚开始练习指数。为此,我刚创建了一个包含10000000行的表。在没有创建索引的情况下,我搜索了4568754条记录,在解释计划中它只显示了28行。

我怀疑:

如果我们不会' Oracle会进行顺序搜索。在表上创建任何索引。在上面的例子中搜索的行应该是4568743,但为什么它只显示28?

创建唯一索引后,它只搜索了一行。我可以看到%CPU中的差异和执行所花费的时间,但扫描的行数对我来说只是混乱。

任何人都可以解释..如果我的理解是错的?

1 个答案:

答案 0 :(得分:0)

执行计划仅显示估计的行数,这些行数基于收集的统计信息。优化器统计数据很复杂;如果没有关于执行内容的准确信息,则无法解释ROWS值。

该表最有可能是陈旧或缺失的统计信息,并且FULL TABLE SCAN的估算值不准确。在创建时自动收集索引统计信息。创建索引并更改计划后,它可以使用准确的索引统计信息来预测只返回一行。