Oracle如何查询表和索引的历史统计信息

0    307    1

Tags:

👉 本文共约797个字,系统预计阅读时间或需3分钟。

目录

    从Oracle 10g开始,当收集表的统计信息的时候,旧的统计数据被保留,如果因为新的统计信息而出现性能问题,旧的统计信息就可以被恢复。历史统计信息保存在以下几张表中:

    • l WRI$_OPTSTAT_TAB_HISTORY 表的统计信息
    • l WRI$_OPTSTAT_IND_HISTORY 索引的统计信息
    • l WRI$_OPTSTAT_HISTHEAD_HISTORY 列的统计信息
    • l WRI$_OPTSTAT_HISTGRM_HISTORY 直方图的信息

    从视图DBA_TAB_STATS_HISTORY可以查询历史收集统计信息的时间,但是不能查询到行数,所以需要结合基表来查询,查询的SQL语句如下:

    image-20230728105858691

    查询索引的历史统计信息的SQL语句如下:

    image-20230728105921760

    默认情况下统计信息将被保留31天,可以使用下面的命令修改:

    EXECUTE DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (XX); --xx是保留的天数

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
    AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
    验证码:
    获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

    标签:

    Avatar photo

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表回复