0

在 ODI 中,我们使用 DBMS_STATS.GATHER_SCHEMA_STATS 来重新计算统计信息,仅当使用选项(选项 => 'GATHER AUTO')更改了特定百分比的表时。(http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_stats.htm#i1036456

现在我想将统计信息的计算移至表级别(在 IKL 中),但 DBMS_STATS.GATHER_TABLE_STATS 似乎没有设置仅在需要更新时重新计算统计信息(由 Oracle 确定)。(http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_stats.htm#i1036461

总是重新计算我们所有表的统计数据太昂贵了。

有谁知道检查表是否需要更新其统计信息或 DBMS_STATS.GATHER_TABLE_STATS 中的隐藏选项的方法。

4

2 回答 2

3

DBMS_STATS.GATHER_SCHEMA_STATS具有列出 STALE 对象的选项;您可以先运行它并确定您的表是否在返回的对象列表中。

于 2015-01-23T15:46:26.417 回答
2

检查来自 USER_TAB_STATISTICS / ALL_TAB_STATISTICS / DBA_TAB_STATISTICS 的列 STALE_STATS

于 2015-01-23T18:35:09.997 回答