2008-08-31 113 views
2

何时以及如何执行Oracle统一数据表版统计信息收集9版及更高版本?如何收集统计信息,以便收集统计信息与“营业时间”相冲突的大型数据库。Oracle统计信息收集表

回答

1

收集统计应做每当出现了对数据内容的大变化,例如大量的删除或插入的。如果表格结构发生了变化,您还应该收集统计数据。建议使用'ESTIMATE'选项。

如果可能的话要完成这个任务的自动化进程外的营业时间,或者如果你有在工作时间内做到这一点,然后选择的时候,有你想收集统计信息表最小访问。

+1

我不同意使用估计的统计数据。在我的(虽然有限的)经验中,在统计表中,“估计”与“无意义”是同义的。 – ninesided 2014-04-01 11:21:46

0

确保在使用您收集的估计(sample_percent)至少10%时。以下可能会产生非常可疑的结果。

0

考虑备份当前的统计数据收集时 - 这样你可以比较它们(如果你有兴趣),并可能恢复他们,如果你的新统计造成问题。请记住,统计信息用于确定执行计划 - 如果您想要更改执行计划,您只需要收集它们。

4

我不同意在进行大量删除或插入操作后,应始终重建统计信息。一如既往,这取决于。在数据仓库的情况下,重新构建实体化视图时,您将执行大量的删除和插入操作,但数据的基本结构不会更改。

如果您的内容有一个显着变化,您只需要重新计算表上的统计信息。 而不是必然意味着在大量的删除或插入之后,而是在删除,插入或更新时实质性地改变关于可能的执行计划的内容。

如果您正在截断表和重建(这将重置您的统计数据),而不是昂贵的统计计算,您最好在截断并存储统计信息之前存储统计信息,然后重建表。

为了节省统计的当前看法你使用:

dbms_stats.export_table_stats 

,并使用他们事后恢复:(有相应的程序schemadatabase

dbms_stats.import_table_stats