表格上的过时统计信息无法准确反映其数据。为了帮助您确定何时数据库对象需要新的统计信息,数据库提供了表监视工具。
监视跟踪表上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_STATISTICS,DBA_IND_STATISTICS和DBA_TAB_MODIFICATIONS视图被从磁盘和存储器获得。
该 STALE_STATS列具有以下可能的值:
YES :统计数字是过时的。NO :统计数字并不陈旧。- 空值 : 不收集统计信息。
执行该选项GATHER_SCHEMA_STATS或GATHER_DATABASE_STATS使用该GATHER AUTO选项仅收集没有统计信息或过时统计信息的对象的统计信息。
要确定陈旧的统计信息:
- 启动SQL * Plus,然后以具有必要特权的用户身份登录数据库。
- 在数据字典中查询过时的统计信息。
以下示例查询
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




