2009-06-19 29 views

Trả lời

5

Google là bạn thân nhất của tôi:

http://www.orafaq.com/node/926

Điểm chính của bài viết này là:

If 2 indexes (I1 and I2) exist for a table and 
    the number of columns in Index I1 is less or equal to the number of column in index I2 and 
    index I1 has the same columns in the same order as leading columns of index I2 
Then 
    If index I1 is UNIQUE then 
     If index I2 is used to support Foregh Key or for Index Overload then 
     Do Nothing 
     Else 
     Index I2 can be DROPPED 
     End If 
    Else 
     Index I1 can be DROPPED 
    End If 
End If 

Và tôi đồng ý với điều đó! Thực tế, tìm kiếm "các chỉ mục trùng lặp" trong Google để có loại câu trả lời khác.

+1

Điều này có thể đúng trong hầu hết các trường hợp, nhưng hãy xem câu trả lời của tôi khi có thể sai khi thả chỉ mục trùng lặp. –

1

Chỉ mục thứ hai là loại dự phòng - bất kỳ thao tác nào sử dụng chỉ mục 2 đều có thể sử dụng chỉ mục 1. Ngoài ra, ghi sẽ chậm hơn một chút do có chỉ mục khác cần cập nhật.

Điều đó nói rằng, Index2 không hoàn toàn dư thừa vì có thể nhanh hơn một chút vì bản thân chỉ mục có thể sẽ nhỏ hơn đáng kể.

1

có khả năng là nếu thống kê của bạn hết hạn, trình tối ưu hóa có thể chọn chỉ mục 2 khi cần chỉ mục 1. (Một gợi ý để tôi ưu hoa sẽ giải quyết điều đó, tất nhiên.)

2

Chỉ mục thứ hai khác nhau và không phải là dự phòng.

Làm thế nào về truy vấn này:

SELECT DISTINCT ColA FROM TABLE WHERE ColA IS NOT NULL; 

Oracle có thể trả lời câu hỏi này hoàn toàn từ Index 2. Bây giờ, chỉ số 2 sẽ được dự kiến ​​sẽ được nhỏ (ít hơn khối) so với chỉ số 1. Điều này có nghĩa, nó là một chỉ mục tốt hơn cho truy vấn trên.

Nếu ứng dụng của bạn không bao giờ thực hiện truy vấn phù hợp với chỉ mục 2 tốt hơn so với chỉ mục 1, thì nó sẽ không cần thiết cho ứng dụng của bạn.

Chỉ mục luôn là sự cân bằng hiệu suất. Khi chèn, cập nhật hoặc xóa được thực hiện có thêm công việc cần làm để duy trì từng chỉ mục bổ sung.

Điều này có được bù đắp nhiều hơn nhờ hiệu suất tăng được cung cấp bởi chỉ mục không? Phụ thuộc vào việc sử dụng ứng dụng và dữ liệu của bạn.

Các vấn đề liên quan