3

oracle索引的last_analyzed日期是什么意思?我正在查看 last_analyzed 日期为 2011-10-03 22:09:16 的索引。这是否意味着索引不起作用?

4

1 回答 1

4

这是上次为该索引收集统计信息的日期。根据索引所在的表中发生的更改量,这可能意味着优化器没有考虑您的索引,因为自为该对象收集统计信息以来的时间长度。如果您发现索引没有在您认为应该使用的时候被使用,那么您可以使用DBMS_STATS包手动运行索引的统计信息收集作业:

exec dbms_stats.gather_index_stats('OWNER_NAME','INDEX_NAME');

gather_index_stats描述here

您将需要 DBA 或 GATHER_SYSTEM_STATISTICS 角色。

开箱即用的 Oracle 安装通常具有定期收集统计信息的计划任务 ( SYS.GATHER_STATS_JOB)。但是,作业选择重新分析对象时的默认值有时是不够的。这是来自 Oracle 的关于统计数据的非常好的白皮书。

于 2013-10-15T20:27:30.503 回答