在Oracle数据库中没有索引的情况下定期收集表的统计信息是否有意义?我从优化的角度问我。我假设总是会在该表上执行FULL TABLE SCAN。
答案 0 :(得分:3)
是的,仍然值得收集统计数据。有关行数和大小的信息对优化器有用,即使没有索引
答案 1 :(得分:1)
简而言之,统计对于优化器同样重要,因为食物对人类来说很重要。如果你长时间不能进食,你的大脑就会降低其功能。
优化器越了解最新的统计信息,它可以决定的执行计划就越好。
让我试着用一个例子来解释:
让我们说你被要求在晴朗的一天到达某个目的地。但是,您未获得地图和位置信息。现在,可能有多种方式可以到达目的地,但如果没有适当的信息,您将以最糟糕的方式进行。如果你足够聪明,你可能会询问方向,现在就是你开始收集统计数据的地方。试想一下,如果您在开始旅程之前已经考虑了整个计划,即如果您可以收集所有统计数据,那么您可以制定最佳计划。
更新看到关于自动优化工具统计信息收集的评论。
是的,当然Oracle 11g Release 1
中有自动优化工具统计信息收集。请参阅更多信息here