我们在生产环境中遇到了性能问题。
我们发现 Oracle 正在使用不正确的索引执行查询。
查询在其 WHERE CLAUSE 中包含主键的所有列(仅此而已)。
重建索引和收集统计信息后,Oracle 开始使用 PK_INDEX。并且执行计划指示索引唯一扫描。
它工作了一段时间,然后 Oracle 再次开始使用错误索引。它使用的索引现在由 2 列组成,其中只有 1 列出现在查询的 WHERE 子句中。现在执行计划指示INDEX RANGE SCAN,系统很慢。
请让我知道我们如何才能找到这个问题的根源。