在Oracle中,在没有WHERE子句的情况下触发UPDATE时使用的索引
答案 0 :(得分:5)
“使用”是指“引用”还是“修改”?
没有WHERE子句的UPDATE归结为对整个表的迭代;在这种情况下,我认为甲骨文应该引用索引没有充分的理由,因为没有任何好处。 (虽然这只是一个合格的猜测。)nonnb是正确的,索引受影响取决于你触摸的列。
答案 1 :(得分:2)
如果更新影响索引列,则还需要替换索引页。
答案 2 :(得分:2)
Oracle会使用索引查找正在更新的行吗?没有where子句,几乎肯定不会。
Oracle是否必须读取一个或多个索引,以一致模式获取块以更新它们?如果要更新任何已编制索引的列,使用基于函数的索引将导致更新的索引值,或导致分区之间的行移动,则是,将使用索引“。”