全表扫描的访问方式,挺适合数据量不大、全量查询的场景。它就像翻书一样一页页找,效率其实还不错,尤其在没有合适索引时挺靠谱的。Oracle 会用批量读取的方式来加速,响应也挺快的。
ROWID 的访问方式,是通过记录的物理地址来定位数据的,准确又高效。配合索引一起用,查询速度直接飞起。你要是经常查某一列,配个索引,用 ROWID 跳转,省时省力。
Oracle 的优化手段还蛮聪明的。比如在判断你查询条件时,它会自动选最合适的访问路径,遇到索引就走索引,没索引就全表扫。有点像老司机自动选路,避开拥堵。
你要是想更深入了解 ROWID 怎么在执行计划中表现,可以看看这篇文章:ORACLE 执行计划和 SQL 调优中的 Rowid 概念。挺有的,例子也贴切。
对了,别忘了索引的选择也关键,推荐这篇自动选择索引 Oracle SQL 调优指南,写得还蛮实用,适合查漏补缺。
如果你正好也在踩 SQL 调优的坑,可以顺手收藏下面这些:
如果你刚开始搞 Oracle 调优,建议先了解 ROWID 和全表扫描的适用场景,别一上来就全靠索引,配合用才是王道。