对于现有表,我添加了索引以检查性能。表有150万条记录。现有成本为“58645”。一旦创建了索引,成本就会降低到“365”。因此,我经常将索引视为“无法使用”。然后我改变并重建索引进行检查。对于昨天已知的索引正在oracle的解释计划中使用。但是今天当我无法使用索引并重建时,在解释计划中,索引扫描无法正常工作。但性能仍然比较老。我已经丢弃并再次创建。但问题仍然存在。提取速度很快。但解释计划显示该指数未被使用且成本显示为“58645”。我坚持这个。
答案 0 :(得分:0)
很多时候,当您创建新索引或从头开始重建它时,它不会显示在解释计划中,有时也不会使用一段时间。要纠正解释计划,应在索引上收集统计数据。
应使用EXEC DBMS_STATS.GATHER_INDEX_STATS或使用带有级联选项的DBMS_STATS.GATHER_TABLE_STATS。
答案 1 :(得分:0)
数据块缓存在BUFFER_POOL中,这会影响您的结果:
你是否冲洗了缓冲区?
ALTER SYSTEM FLUSH BUFFER_POOL;