Làm thế nào để chỉ số tác động hiệu suất truy vấn?


12

Rõ ràng việc giữ một số chỉ số khác nhau có tác động tiêu cực đến hiệu suất chèn và xóa. Làm thế nào về hiệu suất truy vấn: Liệu nó có ý nghĩa gì khi giữ quá nhiều chỉ mục trên một bảng? Hiệu suất truy vấn sẽ cải thiện trong mọi trường hợp có thêm chỉ mục (tất nhiên đối với các truy vấn sử dụng chỉ mục đó) hoặc thậm chí có thể hiệu suất truy vấn sẽ giảm với quá nhiều chỉ số vì cần tham khảo tất cả các chỉ mục để có được kết quả?

Trong trường hợp có các chỉ số khác nhau trên một bảng: tất cả chúng sẽ được xem xét, hoặc chỉ tốt nhất theo quan điểm tối ưu hóa? Oracle có thực hiện các chỉ số đa chiều không?


2
Tại sao bạn không kiểm tra điều này và báo cáo lại kết quả của bạn? :)
Neil McGuigan

Tôi sẽ làm vào ngày mai :)
paweloque

2
Các chỉ mục không nhất thiết làm chậm việc xóa, chúng cũng có thể tăng tốc chúng (giống như các bản cập nhật có thể tận dụng một chỉ mục)
a_horse_with_no_name

@el trưởng điểm gì trong việc phát minh lại bánh xe? vì vậy, có hiệu ứng hiệu năng truy vấn đang được đề cập mặc dù chúng tôi biết chắc chắn rằng các phần chèn / xóa sẽ bị ảnh hưởng. Làm thế nào về cập nhật? họ sẽ bị ảnh hưởng tiêu cực?
Sangram

Câu trả lời:


15

Sẽ mất nhiều thời gian hơn để tạo kế hoạch khi có nhiều chỉ số để xem xét, nhưng tôi nghi ngờ sự khác biệt sẽ có ý nghĩa đáng kể. Các lý do để giảm chỉ mục không liệt kê hiệu suất truy vấn. Mặt khác, nói chung, bạn không nên tạo các chỉ mục trừ khi bạn biết chúng sẽ được sử dụng để làm cho một truy vấn hiệu quả hơn.

Từ Hướng dẫn về khái niệm của Oracle , đây là các tiêu chí để tạo một chỉ mục.

Nói chung, hãy xem xét việc tạo một chỉ mục trên một cột trong bất kỳ tình huống nào sau đây:

  • Các cột được lập chỉ mục được truy vấn thường xuyên và trả về một tỷ lệ nhỏ trong tổng số hàng trong bảng.

  • Một ràng buộc toàn vẹn tham chiếu tồn tại trên cột hoặc cột được lập chỉ mục. Chỉ mục là một phương tiện để tránh khóa bảng đầy đủ sẽ được yêu cầu nếu bạn cập nhật khóa chính của bảng cha, nhập vào bảng cha hoặc xóa khỏi bảng cha.

  • Một ràng buộc khóa duy nhất sẽ được đặt trên bảng và bạn muốn chỉ định thủ công chỉ mục và tất cả các tùy chọn chỉ mục.

Tất cả các chỉ mục sẽ được xem xét theo nghĩa là tất cả các chỉ mục trên các bảng trong truy vấn được kiểm tra để xác định xem chúng có thể được sử dụng hay không. Những người có thể được kiểm tra thêm để xác định tính hữu dụng.


7

Miễn là số liệu thống kê của bạn được cập nhật, trình tối ưu hóa dựa trên chi phí phải đưa ra quyết định hợp lý về việc sử dụng chỉ mục nào. Nếu không, đó là thời gian để sử dụng gợi ý . Nó sẽ không bao giờ tham khảo một chỉ mục trên một cột không cần thiết để đáp ứng truy vấn.


0

Tôi thấy điều này trong Lựa chọn một chiến lược Index của Hướng dẫn Application Developer của . Trang đó nói về 'chọn chiến lược chỉ mục':

Giới hạn số lượng chỉ mục cho mỗi bảng

Càng nhiều chỉ mục, càng có nhiều chi phí phát sinh khi bảng bị thay đổi. Khi các hàng được chèn hoặc xóa, tất cả các chỉ mục trên bảng phải được cập nhật. Khi một cột được cập nhật, tất cả các chỉ mục trên cột phải được cập nhật.

Bạn phải cân nhắc lợi ích hiệu suất của các chỉ mục cho các truy vấn so với chi phí hoạt động của các bản cập nhật. Ví dụ: nếu một bảng chủ yếu chỉ đọc, bạn có thể sử dụng nhiều chỉ mục hơn; nhưng, nếu một bảng được cập nhật nhiều, bạn có thể sử dụng ít chỉ mục hơn.


2
Từ câu hỏi: "Rõ ràng việc giữ một số chỉ số khác nhau có tác động tiêu cực đến hiệu suất chèn và xóa. Làm thế nào về hiệu suất truy vấn"
Jack nói hãy thử topanswers.xyz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.