暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle * _ tab_statistics和带有 “列表陈旧” 的gather_schema_stat的陈旧对象结果之间的差异

askTom 2017-07-12
321

问题描述

我试图找到所有陈旧的对象。据我所知,有两种方法,两者都应该返回相同的结果。

在开始之前,我第一次做了一个冲洗监控
begin  
    dbms_stats.flush_database_monitoring_info;  
    end;  
    /


然后我使用了第一种方法,即查询 * _ tab_statistics表
select * from ALL_TAB_STATISTICS a where STALE_STATS = 'YES'  


然后我使用了第二种方法,即在gather_schema_stat proc中传递 “列表陈旧”

declare  
lv_object_list dbms_stats.objecttab;  
p_filter_list dbms_stats.objecttab := dbms_stats.objecttab();  
begin  
dbms_stats.gather_schema_stats(ownname => 'XXXXX',  
                                     options => 'LIST STALE',  
                                     objlist => lv_object_list,  
                                     force => TRUE);  
FOR i IN 1 .. lv_object_list.count  
LOOP  
  dbms_output.put_line(lv_object_list(i).objName);  
END LOOP;                                       
end;  
/

专家解答

要在 * _ tab_statistics中获取最新信息,您需要像完成的那样刷新统计信息。请注意,调用dbms_stats在内部做到这一点:

create table t (
  x int primary key, y int
);

insert into t values (0, 0);
commit;
exec dbms_stats.gather_table_stats(user, 't');

insert into t
  select rownum, 1 from dual connect by level <= 100;
commit;

select table_name from user_TAB_STATISTICS a where STALE_STATS = 'YES' ; 

TABLE_NAME                    
------------------------------
PEOPLE

declare  
lv_object_list dbms_stats.objecttab;  
p_filter_list dbms_stats.objecttab := dbms_stats.objecttab();  
begin  
dbms_stats.gather_schema_stats(ownname => 'chris',  
                                     options => 'LIST STALE',  
                                     objlist => lv_object_list,  
                                     force => TRUE);  
FOR i IN 1 .. lv_object_list.count  
LOOP  
  dbms_output.put_line(lv_object_list(i).objName);  
END LOOP;                                       
end;  
/

PEOPLE
T

select table_name from user_TAB_STATISTICS a where STALE_STATS = 'YES' ; 

TABLE_NAME                    
------------------------------
PEOPLE
T


因此,假设您已经刷新了统计数据,您是否遇到了这些结果不同的情况?
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论