Đối với các câu lệnh UPDATE, trình tối ưu hóa có thể sử dụng chỉ mục nếu cho rằng chỉ mục có thể tăng tốc. Chỉ mục sẽ được sử dụng để xác định các hàng sẽ được cập nhật. Nói cách khác, chỉ mục cũng là một bảng, vì vậy nếu cột được lập chỉ mục đang được cập nhật, thì rõ ràng nó cũng cần CẬP NHẬT chỉ mục. Mặt khác, nếu bạn đang chạy bản cập nhật mà không có mệnh đề WHERE, trình tối ưu hóa có thể chọn không sử dụng chỉ mục vì nó phải truy cập vào toàn bộ bảng, việc quét toàn bộ bảng có thể hiệu quả hơn (nhưng vẫn có thể phải cập nhật chỉ mục ). Trình tối ưu hóa đưa ra các quyết định đó trong thời gian chạy dựa trên một số tham số như liệu có thống kê hợp lệ đối với các bảng và chỉ mục được đề cập hay không, lượng dữ liệu bị ảnh hưởng, loại phần cứng nào, v.v.
Đối với các câu lệnh INSERT, mặc dù bản thân INSERT không cần chỉ mục, chỉ mục cũng sẽ cần được 'chèn vào', do đó sẽ cần được truy cập bởi oracle. Một trường hợp khác mà INSERT có thể khiến chỉ mục được sử dụng là INSERT như thế này:
INSERT INTO mytable (mycolmn)
SELECT mycolumn + 10 FROM mytable;