oracle 如何修复陈旧的索引统计信息

t40tm48m  于 2023-10-16  发布在  Oracle
关注(0)|答案(2)|浏览(125)

我们有一些过时的索引统计数据,我们可以通过使用下面的查询来查看:

select * from all_ind_statistics
where  index_name in ('DEPT_FK_BX01','DEPT_FK_BX02')
and    table_owner = 'GDC_ADMIN'
and    stale_stats = 'YES';

要修复我们运行的陈旧状态,请执行以下操作:

begin
    dbms_stats.gather_table_stats
    ( ownname => 'GDC_ADMIN'
    , tabname => 'DEPT_TABLE'
    , cascade => DBMS_STATS.AUTO_CASCADE
    , degree  => NULL );
end;

但仍然存在陈旧的状态。
有什么办法可以修复陈旧的状态吗?

nvbavucw

nvbavucw1#

您可以考虑使用cascade=>TRUE选项收集统计信息:

SQL> exec Dbms_Stats.Gather_Table_Stats('GDC_ADMIN','DEPT',cascade=>TRUE);

收集与指定表关联的所有索引和列统计信息。

evrscar2

evrscar22#

执行dbms_stats.gather_index_stats(ownname => 'GDC_ADMIN',indname =>' DEPT_FK_BX01',estimate_percent =>DBMS_STATS. DEPT_SAMPLE_SIZE);
等等

相关问题