如题

起因

oracle 给子表创建了外键索引,使用外键单独查询子表数据,是全表查询没有走索引。使用 EXPLAN PLAN FOR 查看确定是全表查的。放了一晚上第二天发现又正常使用了索引查询。但是其他子表还是有没使用索引的问题。

需求

希望创建了索引后都能走该索引查询,别全表查太慢了。为什么创建好了索引还是全表查,但是个别子表放一晚又能使用索引查了呢(数据量大?子表 4kw 数据)。


另,只查子表,没有关联查询,条件就一个子表外键。 感谢

最新回复 (3)
  • mamumu4月前
    引用2
    mysql 里对索引有个区分度的评价,评分高的才会采用,但是这个值并不是事实更新的,可以用 ANALYZE TABLE 让它立即更新。感觉 oracle 也有类似的机制吧
  • SoulSleep4月前
    引用3
    这种问题问 dba 就好...
    Oracle 有定期的索引优化计划
    另外可以强制绑定执行计划走索引
  • nash10004月前
    引用4
    有多种可能不走索引,索引失效,表的统计信息不准确,或者分析器认为不走的性能更好。这个一步步问 gpt 就行,他会告诉你怎么排查。
  • 回复请 登录 or 快速注册
返回