在ODI中,我们使用DBMS_STATS.GATHER_SCHEMA_STATS仅在表格使用选项(options =>'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中的隐藏选项的方法。
答案 0 :(得分:3)
DBMS_STATS.GATHER_SCHEMA_STATS可以选择LIST STALE对象;你可以先运行它,然后决定你的表是否在返回的对象列表中。
答案 1 :(得分:2)
检查USER_TAB_STATISTICS / ALL_TAB_STATISTICS / DBA_TAB_STATISTICS
中的STALE_STATS列