在没有WHERE子句的情况下触发UPDATE时使用索引

时间:2010-08-23 12:09:59

标签: oracle

在Oracle中,在没有WHERE子句的情况下触发UPDATE时使用的索引

3 个答案:

答案 0 :(得分:5)

“使用”是指“引用”还是“修改”?

没有WHERE子句的UPDATE归结为对整个表的迭代;在这种情况下,我认为甲骨文应该引用索引没有充分的理由,因为没有任何好处。 (虽然这只是一个合格的猜测。)nonnb是正确的,索引受影响取决于你触摸的列。

答案 1 :(得分:2)

如果更新影响索引列,则还需要替换索引页。

答案 2 :(得分:2)

Oracle会使用索引查找正在更新的行吗?没有where子句,几乎肯定不会。

Oracle是否必须读取一个或多个索引,以一致模式获取块以更新它们?如果要更新任何已编制索引的列,使用基于函数的索引将导致更新的索引值,或导致分区之间的行移动,则是,将使用索引“。”