如题
oracle 给子表创建了外键索引,使用外键单独查询子表数据,是全表查询没有走索引。使用 EXPLAN PLAN FOR 查看确定是全表查的。放了一晚上第二天发现又正常使用了索引查询。但是其他子表还是有没使用索引的问题。
希望创建了索引后都能走该索引查询,别全表查太慢了。为什么创建好了索引还是全表查,但是个别子表放一晚又能使用索引查了呢(数据量大?子表 4kw 数据)。
另,只查子表,没有关联查询,条件就一个子表外键。 感谢
![]() |
1
mamumu 44 天前
mysql 里对索引有个区分度的评价,评分高的才会采用,但是这个值并不是事实更新的,可以用 ANALYZE TABLE 让它立即更新。感觉 oracle 也有类似的机制吧
|
![]() |
2
SoulSleep 44 天前
这种问题问 dba 就好...
Oracle 有定期的索引优化计划 另外可以强制绑定执行计划走索引 |
![]() |
3
nash1000 44 天前
有多种可能不走索引,索引失效,表的统计信息不准确,或者分析器认为不走的性能更好。这个一步步问 gpt 就行,他会告诉你怎么排查。
|
4
cnhongwei 43 天前
现在的 oracle 都是基于代价使用索引的,要不你的索引不合理,要不统计信息不准确,你刷新一下统计,提示 oracle 使用索引,查看和不使用索引分别的代价区别。
|