如何知道 Oracle 数据库中的统计信息是最新的?
Posted
技术标签:
【中文标题】如何知道 Oracle 数据库中的统计信息是最新的?【英文标题】:How to know the statistics are up to date in Oracle Database? 【发布时间】:2019-10-22 20:54:04 【问题描述】:如何知道统计数据是最新的,有什么方法可以找到上次统计数据的计算时间?
我只需要查看 dba_tab_statistics 视图的 stale_stats 和 last_analyzed 列吗?
【问题讨论】:
是的,这是通常的处理方式(last_analyzed
也可以在 all_tables
中找到)。您对其中看到的信息不满意吗?
我不确定这是否是唯一的方法。 @GMB
由于它被标记为 12c,除非您更改了默认配置,否则 Oracle 有一项工作可以在一夜之间自动收集它判断为具有陈旧统计信息的任何表的统计信息。除非您的表的使用模式不适用于该作业(即,在收集统计信息时一夜之间为空的临时表,作为白天 ETL 运行的一部分加载了数百万行),您可能不需要过分关心这个。
【参考方案1】:
您可以在 XXX_TABLES
视图中找到它(例如 DBA_TABLES、USER_TABLES、ALL_TABLES)。您要查找的列是 LAST_ANALYZED,例如
SELECT OWNER, TABLE_NAME, LAST_ANALYZED
FROM USER_TABLES
dbfiddle here
【讨论】:
以上是关于如何知道 Oracle 数据库中的统计信息是最新的?的主要内容,如果未能解决你的问题,请参考以下文章