如果我使用alter index x rebuild重建不可用的索引,那么以前会重新评估使用该索引的任何SQL的执行计划吗?
我知道统计信息是作为我正在使用的数据库版本 – Oracle 10.2.0.4.0中的重建的一部分重新计算的.
我不想使用dbms_stats包强制解决这个问题,因为我已经获得了新的统计数据!
解决方法
由于索引当前不可用,因此没有SQL查询使用索引.当您收集统计信息(通过rebuild或dbms_stats包)时,下次提交时将对基表的所有语句进行重新分析(硬解析).由于统计信息更新,计划可能会发生变化.
因此,重建不可用的索引将使所有语句都可见并可用,即使是之前已解析过的语句也是如此.