oracle索引的last_analyzed日期是什么意思?我正在查看一个索引,其last_analyzed日期是2011-10-03 22:09:16。这是否意味着索引不起作用?
答案 0 :(得分:4)
这是上次为该索引收集统计信息的日期。根据索引所在的表中发生的更改量,这可能意味着优化器不会考虑您的索引,给定自此对象收集统计信息以来的时间长度。如果您认为索引未在您认为应该使用时使用,则可以使用DBMS_STATS包手动运行索引的统计信息收集作业:
exec dbms_stats。gather_index_stats('OWNER_NAME','INDEX_NAME');
您将需要DBA或GATHER_SYSTEM_STATISTICS角色。
开箱即用,Oracle安装通常具有定期收集统计信息的计划任务(SYS.GATHER_STATS_JOB)。但是,作业选择重新分析对象时的默认值有时不足。对于Oracle的统计数据,这是一个非常好的white paper。