如何在不使用OEM的情况下检查Oracle上一次统计信息运行的时间

25

我想检查在我的Oracle 10g服务器上最后一次运行统计数据的时间。通常我会通过OEM来完成这个操作,但由于其他原因,OEM已经无法使用。有没有办法只使用sqlplus来检查这个内容?如果输出能够格式化就更好了。

2个回答

31
所有的数据字典表格都有一个LAST_ANALYZED列(根据需要将*替换为USER/ALL/DBA)。
*_TABLES
*_TAB_PARTITIONS
*_TAB_SUBPARTITIONS
*_INDEXES
*_IND_PARTITIONS
*_IND_SUBPARTITIONS

(直方图字段中还有很多内容,但我不会深入探讨。)

相反,ALL_TAB_MODIFICATIONS 显示自采集优化器统计信息以来插入/更新/删除的行数(或截断表/分区/子分区的时间戳)。


2
在我的设置中,stats 仅为一个用户运行,因此这很好地起作用。我使用的 SQL(已登录为该用户)是:SELECT TO_CHAR(last_analyzed, 'yyyy/mm/dd hh:mi:ss am') as last_analyzed FROM user_tables where table_name = <table_in_my_schema> - Jacob

2
SELECT LAST_START_DATE 
 FROM DBA_SCHEDULER_JOBS 
WHERE job_name='GATHER_STATS_JOB';

根据您的SQLPLUS / NLS设置,您可能需要调整日期格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接