【发布时间】:2013-10-15 19:58:39
【问题描述】:
oracle索引的last_analyzed日期是什么意思?我正在查看 last_analyzed 日期为 2011-10-03 22:09:16 的索引。这是否意味着索引不起作用?
【问题讨论】:
oracle索引的last_analyzed日期是什么意思?我正在查看 last_analyzed 日期为 2011-10-03 22:09:16 的索引。这是否意味着索引不起作用?
【问题讨论】:
这是上次为该索引收集统计信息的日期。根据索引所在的表中发生的更改量,这可能意味着优化器没有考虑您的索引,因为自为该对象收集统计信息以来的时间长度。如果您发现索引没有在您认为应该使用的时候被使用,那么您可以使用 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)。但是,作业选择重新分析对象时的默认值有时是不够的。这是一个相当不错的white paper,来自 Oracle 的统计数据。
【讨论】: