统计信息收集后不生效的问题

客户的某系统升级到11g之后,收集统计信息却不生效,查dba_tables看不到其LAST_ANALYZED。这其实是因为11g的一个新特性,延时发布统计信息。

我们看下面的测试案例:

我们可以修改表的publish属性:

设置表的publish属性为false之后,我们来看看收集统计信息不立即生效的效果:

publish属性作为表的属性一直保持:

注:延时统计信息发布,只是对gather_xxx_stats才起作用。如果是用老式的analyze table xxx compute statistics,则不受此限制,还是会立即生效。

相关文章

2条评论

  1. > 客户的某系统升级到11g之后,收集统计信息却不生效,查dba_tables看不到其LAST_ANALYZED。
    原因是什么?就是因为11g的延时发布统计信息这个新特性吗?此时dbms_stats.GET_PREFS(‘PUBLISH’)的值是什么?TRUE or FALSE?

    按照正常来讲,dbms_stats.GET_PREFS(‘PUBLISH’)的默认值应该是TRUE才对啊。

    另外,引入这个新特性的理由是什么?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据