Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào và khi nào các chỉ mục được sử dụng trong các hoạt động CHÈN và CẬP NHẬT?

Đố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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. lấy ra tham số từ thủ tục được lưu trữ?

  2. làm cách nào để thực thi một hàm từ TOAD cho Oracle và liên kết kết quả với một lưới dữ liệu

  3. ORA-01653:không thể mở rộng bảng trong không gian bảng ORA-06512

  4. sql oracle - xóa giá trị trùng lặp

  5. Con trỏ cơ sở dữ liệu có nhận các thay đổi đối với dữ liệu cơ bản không?