首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle的表统计信息收集

Oracle的表统计信息收集
EN

Stack Overflow用户
提问于 2008-08-31 12:11:43
回答 4查看 8.6K关注 0票数 3

对于Oracle版本9及更高版本,应在何时以及如何执行表统计信息收集?你将如何为一个大型数据库收集统计数据,在那里统计数据收集将与“营业时间”发生冲突。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-08-31 15:48:20

只要数据内容发生了较大的更改,例如大量的删除或插入,就应该收集统计信息。如果表结构发生了变化,您还应该收集统计数据。建议使用“ESTIMATE”选项。

如果可能,在非工作时间自动执行此操作,或者如果您必须在工作时间执行此操作,请选择对您希望收集其统计信息的表的访问次数最少的时间。

票数 1
EN

Stack Overflow用户

发布于 2008-09-22 19:44:37

我不同意你总是应该在有很多删除或插入之后重新构建你的统计数据。一如既往,这取决于。在数据仓库的情况下,在重新构建物化视图时,您将执行大量的删除和插入操作,但数据的基本结构不会改变。

仅当表的内容发生重大更改时,才需要重新计算表的统计数据。这并不一定意味着在大量删除或插入之后,而是在删除、插入或更新与可能的执行计划相关的内容发生实质性更改时。

如果您正在截断表并重新构建(这将重置您的统计信息),而不是昂贵的统计信息计算,那么在重新构建表之后,在截断和恢复统计信息之前存储统计信息通常会更好。

要保存当前使用的统计信息视图,请执行以下操作:

代码语言:javascript
复制
dbms_stats.export_table_stats

要在之后恢复它们,您可以使用:

代码语言:javascript
复制
dbms_stats.import_table_stats

(对于schemadatabase,有相应的步骤。)

票数 5
EN

Stack Overflow用户

发布于 2008-09-21 01:48:42

在使用估计值(sample_percent)时,请确保您至少收集了10 %。下面的代码可能会产生非常可疑的结果。

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

https://stackoverflow.com/questions/36813

复制
相关文章

相似问题

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