Oracle 收集关于没有索引的表的统计信息

Oracle 收集关于没有索引的表的统计信息,oracle,indexing,table-statistics,Oracle,Indexing,Table Statistics,在Oracle数据库中定期收集不带索引的表的统计信息有意义吗?我是从优化的角度来问的。我假设始终会对该表执行完整的表扫描。是的,仍然值得收集统计数据。关于行的数量和大小的信息对优化器很有用,即使没有索引是的,仍然值得收集统计信息。关于行的数量和大小的信息对优化器很有用,即使没有索引,简而言之,统计数据对优化器的重要性不亚于食物对人类的重要性。如果你长时间不吃饭,你的大脑功能就会退化 优化器知道的最新统计信息越多,它可以决定的执行计划就越好 让我试着用一个例子来解释: 假设你被要求在一个晴朗的日子

在Oracle数据库中定期收集不带索引的表的统计信息有意义吗?我是从优化的角度来问的。我假设始终会对该表执行完整的表扫描。

是的,仍然值得收集统计数据。关于行的数量和大小的信息对优化器很有用,即使没有索引

是的,仍然值得收集统计信息。关于行的数量和大小的信息对优化器很有用,即使没有索引

,简而言之,统计数据对优化器的重要性不亚于食物对人类的重要性。如果你长时间不吃饭,你的大脑功能就会退化

优化器知道的最新统计信息越多,它可以决定的执行计划就越好

让我试着用一个例子来解释:

假设你被要求在一个晴朗的日子到达一个特定的目的地。但是,没有向您提供地图和位置信息。现在,有N种方法可以到达目的地,但是如果没有适当的信息,你会选择最糟糕的方法。如果你足够聪明,你可以问路,现在你可以从这里开始收集统计数据了。试想一下,如果你在开始旅行之前就已经考虑好了整个计划,也就是说,如果你能收集所有的统计数据,你就能做出最好的计划

更新看到一条关于自动优化器统计数据收集的评论


是的,当然在Oracle 11g第1版中有自动优化器统计数据集合。请查看更多信息

简言之,统计数据对优化器的重要性不亚于食品对人类的重要性。如果你长时间不吃饭,你的大脑功能就会退化

优化器知道的最新统计信息越多,它可以决定的执行计划就越好

让我试着用一个例子来解释:

假设你被要求在一个晴朗的日子到达一个特定的目的地。但是,没有向您提供地图和位置信息。现在,有N种方法可以到达目的地,但是如果没有适当的信息,你会选择最糟糕的方法。如果你足够聪明,你可以问路,现在你可以从这里开始收集统计数据了。试想一下,如果你在开始旅行之前就已经考虑好了整个计划,也就是说,如果你能收集所有的统计数据,你就能做出最好的计划

更新看到一条关于自动优化器统计数据收集的评论


是的,当然在Oracle 11g第1版中有自动优化器统计数据集合。请查看更多信息

如果您使用的是Oracle 11g或更高版本,则Oracle将自动为您收集统计数据……网络上有很多信息,因此我想用一个例子来解释一下。请看我的答案。即使除了使用全表扫描没有其他选择,它也是值得的。假设您将这个表与另一个表联接,并对结果进行归档。优化器可以选择嵌套循环,也可以选择哈希连接。但是,如果整个哈希表适合RAM,则哈希连接更有效。这里是统计数据。可能有助于估计哈希表的大小。@Ben,我明白了。您正在谈论自动优化器统计数据收集。您是否在生产系统中使用它?我不这么认为。这不应该是确保您的统计数据是最新@lalit的唯一方法,但为什么不使用自动统计数据收集?如果您使用的是Oracle 11g或更高版本,那么Oracle将自动为您收集统计数据…网络上有很多信息,所以我想用一个例子来解释。请看我的答案。即使除了使用全表扫描没有其他选择,它也是值得的。假设您将这个表与另一个表联接,并对结果进行归档。优化器可以选择嵌套循环,也可以选择哈希连接。但是,如果整个哈希表适合RAM,则哈希连接更有效。这里是统计数据。可能有助于估计哈希表的大小。@Ben,我明白了。您正在谈论自动优化器统计数据收集。您是否在生产系统中使用它?我不这么认为。它不应该是确保您的统计数据是最新@lalit的唯一方法,但为什么不使用自动统计数据收集?除了@Dave所说的,还收集了其他信息,如不同值的数量(NDV)、数据的偏斜(如果正在收集直方图)和高/低值。您为优化器提供的每一点帮助都不会白费!除了@Dave所说的之外,还收集了其他信息,如不同值的数量(NDV)、数据的偏斜(如果正在收集直方图)和高/低值。您为优化器提供的每一点帮助都不会白费!