首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBMS_STATS会分析这个表吗?

问DBMS_STATS会分析这个表吗?
EN

Stack Overflow用户
提问于 2011-10-20 14:16:47
回答 1查看 2K关注 0票数 3

我使用DBMS_STATS.GATHER_SCHEMA_STATS过程收集代码中的统计信息。

代码语言:javascript
复制
BEGIN
   DBMS_STATS.gather_schema_stats
                            (ownname          => '<SCHEMA NAME',
                             estimate_percent => DBMS_STATS.auto_sample_size,
                             options          => 'GATHER STALE',
                             DEGREE           => NULL,
                             CASCADE          => DBMS_STATS.auto_cascade,
                             granularity      => 'auto'
                            );
end;

我的问题:在我执行这段代码之后,我使用TOAD工具检查了表的最后一个分析日期,它显示的是其他一些过去的日期,而不是运行DBMS_STATS.GATHER_SCHEMA_STATS过程时的当前日期。

这是否意味着DBMS_STATS不会分析该表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-20 14:25:17

当您指定选项GATHER STALE时,您要告诉Oracle,您只想收集自上次在该对象上收集统计信息以来经历了“重大”更改的对象的统计信息。如果Oracle确定自上次收集统计信息以来该表没有发生太大变化,它将不会再次收集统计信息。

Oracle通过监视这些表上的DML (Oracle默认在11g中监视表--您必须在早期版本中启用监视)来确定表已经发生了重大变化。该数据定期写入DBA_TAB_MODIFICATIONS (大约每隔几个小时)。当DBMS_STATS使用GATHER STALE选项运行时,Oracle将DBA_TAB_MODIFICATIONS中的大致更改数与表的先前统计信息进行比较,以确定是否有足够的行已经更改,从而值得再次收集统计信息。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7837301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档