查看表 和 索引的历史统计信息
Posted 武汉OracleDBA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查看表 和 索引的历史统计信息相关的知识,希望对你有一定的参考价值。
1、 查看表 和 索引的历史统计信息
select * from WRI$_OPTSTAT_TAB_HISTORY ;
(1) 历史统计信息保存在以下几张表中:
WRI$_OPTSTAT_TAB_HISTORY 表的统计信息
WRI$_OPTSTAT_IND_HISTORY 索引的统计信息
WRI$_OPTSTAT_HISTHEAD_HISTORY 列的统计信息
WRI$_OPTSTAT_HISTGRM_HISTORY 直方图的信息
从视图DBA_TAB_STATS_HISTORY可以查询历史收集统计信息的时间,但是不能查询到行数,所以需要结合基表来查询,查询的SQL语句如下:
登录后复制
SELECT B.OWNER,
B.OBJECT_NAME TABLE_NAME,
TO_CHAR(D.ANALYZETIME, \'YYYY-MM-DD HH24:MI:SS\') LAST_ANALYZETIME,
TO_CHAR(D.SAVTIME, \'YYYY-MM-DD HH24:MI:SS\') CURR_ANALYZETIME,
D.ROWCNT
FROM SYS.WRI$_OPTSTAT_TAB_HISTORY D, DBA_OBJECTS B
WHERE D.OBJ# = B.OBJECT_ID
AND B.OBJECT_NAME IN
(\'TEST_STAT\', \'TPCCBOKBAL_TMP\', \'TPCCBOKBALJN\', \'PK_TPCCBOKBAL\')
ORDER BY D.OBJ#, D.SAVTIME;
(2) 查询索引的历史统计信息的SQL语句如下:
登录后复制
SELECT B.OWNER,
B.OBJECT_NAME INDEX_NAME,
TO_CHAR(D.ANALYZETIME, \'YYYY-MM-DD HH24:MI:SS\') LAST_ANALYZETIME,
TO_CHAR(D.SAVTIME, \'YYYY-MM-DD HH24:MI:SS\') CURR_ANALYZETIME,
D.ROWCNT,
D.BLEVEL,
D.LEAFCNT,
D.DISTKEY,
D.CLUFAC
FROM SYS.WRI$_OPTSTAT_IND_HISTORY D, DBA_OBJECTS B
WHERE D.OBJ# = B.OBJECT_ID
AND B.OBJECT_NAME IN (\'IND_TEST\')
ORDER BY D.OBJ#, D.SAVTIME;
(3)默认情况下统计信息将被保留31天,可以使用下面的命令修改:
EXECUTE DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (XX); --xx是保留的天数
注意:这些统计信息在SYSAUX表空间中占有额外的存储开销,所以应该注意并防止统计信息将表空间填满。
SELECT DBMS_STATS.GET_STATS_HISTORY_RETENTION FROM DUAL;--查询统计信息当前保留的天数。
Oracle统计信息(表、索引)更新怎么操作?
看到有人做过这种类似的操作,可以加快SQL的执行速度,我没有弄过,想问下:
A 如何做ORACEL针对某个用户的统计信息更新
B 如何让这种统计信息更新 (定期自动执行,比如一周执行一次)
以上操作可以在PLSQL中操作吗?
我是初学者,没有弄过,还请各位大虾多多指导,谢谢
exec dbms_stats.gather_schema_stats(
ownname => 'SCOTT',
options => 'GATHER AUTO',
estimate_percent => dbms_stats.auto_sample_size,
method_opt => 'for all columns size repeat',
degree => 15
);
dbms_stat.gather_schema_stats 的参数说请查相关资料,这里就不详述了。
B. 要定期执行用户统计信息很简单,只要在 oracle job 中调用这个过程就可以了,设置好初次调用时间和调用时间间隔即可。
以上的操作都能在plsql中操作。 参考技术A A 如何做ORACEL针对某个用户的统计信息更新
不大明白这个统计信息时什么意思?这个信息时什么信息?统计是个什么概念?
B 如何让这种统计信息更新 (定期自动执行,比如一周执行一次)
采用ORACLE的JOB作业
以上是关于查看表 和 索引的历史统计信息的主要内容,如果未能解决你的问题,请参考以下文章