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

Oracle 19C 确定优化器统计信息何时过时

原创 Asher.HU 2021-02-04
1160


表格上的过时统计信息无法准确反映其数据。为了帮助您确定何时数据库对象需要新的统计信息,数据库提供了表监视工具。

监视跟踪表上DML操作的大概数量,以及自最近的统计信息收集以来表是否已被截断。要检查统计是否陈旧,查询DBA_TAB_STATISTICS.STALE_STATS DBA_IND_STATISTICS.STALE_STATS 

此列基于DBA_TAB_MODIFICATIONS视图中的数据和的STALE_PERCENT首选项DBMS_STATS


注意:Oracle Database 12c第2版(12.2)开始,您不再需要使用DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO来确保视图元数据是最新的。在示出的统计信息DBA_TAB_STATISTICSDBA_IND_STATISTICSDBA_TAB_MODIFICATIONS视图被从磁盘和存储器获得。

 STALE_STATS列具有以下可能的值:

  • YES : 统计数字是过时的。
  • NO  : 统计数字并不陈旧。
  • 空值   :     不收集统计信息。

执行选项GATHER_SCHEMA_STATSGATHER_DATABASE_STATS使用该GATHER AUTO选项仅收集没有统计信息或过时统计信息的对象的统计信息。

要确定陈旧的统计信息:

  1. 启动SQL * Plus,然后以具有必要特权的用户身份登录数据库。
  2. 在数据字典中查询过时的统计信息。

    以下示例查询sh.sales表的过时统计信息(包括部分输出):

    COL PARTITION_NAME FORMAT a15
    
    SELECT PARTITION_NAME, STALE_STATS
    FROM   DBA_TAB_STATISTICS
    WHERE  TABLE_NAME = 'SALES'
    AND    OWNER = 'SH'
    ORDER BY PARTITION_NAME;
     
    PARTITION_NAME  STA
    --------------- ---
    SALES_1995      NO
    SALES_1996      NO
    SALES_H1_1997   NO
    SALES_H2_1997   NO
    SALES_Q1_1998   NO
    SALES_Q1_1999   NO
    .
    .
    .

也可以看看:

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

评论