For UPDATE statements, an index can be used by the optimizer if it believes that the index can speed it up. The index will be used to search for updated rows. The index is also a table in the form of speech, so if the indexed column is updated, it is obviously necessary to also UPDATE the index. On the other hand, if you use an update without a WHERE clause, the optimizer may not use the index because it must access the entire table, a full table scan may be more efficient (but it may still be necessary to update the index). The optimizer makes these decisions at run time based on several parameters, for example, if there are valid statistics against the tables and indexes in question, how much data is affected, what type of equipment, etc.
For INSERT statements, although INSERT itself does not need an index, the index must also be "inserted in", so oracle must be addressed to it. Another case where INSERT can lead to the use of an index is INSERT, for example:
INSERT INTO mytable (mycolmn) SELECT mycolumn + 10 FROM mytable;
source share