Trong DMV sys.dm_db_missing_index_group_stats
, có một trường có tên avg_user_impact
. Trên mỗi BOL, điều này hiển thị số điện thoạimáy chủ sql avg_user_impact
Lợi ích phần trăm trung bình mà truy vấn người dùng có thể gặp phải nếu nhóm chỉ mục bị thiếu này được triển khai. Giá trị có nghĩa là chi phí truy vấn sẽ giảm trung bình theo tỷ lệ phần trăm này nếu nhóm chỉ mục bị thiếu này được triển khai.
Khi tôi chạy truy vấn để tìm các chỉ mục bị thiếu có ảnh hưởng lớn nhất đến hiệu suất, tôi thấy một số xác nhận rằng avg_user_impact
sẽ nằm trong hàng nghìn.
Tôi đã xây dựng chỉ mục bằng một trong các đề xuất này và không bao giờ được sử dụng theo DMV sys.dm_db_index_usage_stats
. Ngay sau khi tôi vô hiệu hóa chỉ mục, nó ngay lập tức xuất hiện trở lại như là một chỉ mục còn thiếu.
Có thể khi trường avg_user_impact
hiển thị trên 100, trường hợp đó có lỗi? Hoặc đây có phải là ví dụ về cách một chỉ mục được đề xuất vẫn phải được kiểm tra tính hữu dụng không? Tôi đang làm gì sai hoặc hiểu lầm?
Một điều khác - có một truy vấn thực sự thông minh để tương quan các kế hoạch truy vấn với các chỉ mục được đề xuất tại đây: http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/71814032-cd8d-4802-80de -7fb2bee80f41 cũng: http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/27/digging-into-the-sql-plan-cache-finding-missing-indexes.aspx – onupdatecascade