Thông tin trong sys.dm_db_index_usage_stats có đáng tin cậy không


8

Tôi đang lưu trữ dữ liệu từ một hệ thống cũ không có tài liệu. May mắn cho tôi ...

Tôi muốn tìm hiểu khi nào các bảng được tạo, truy cập lần cuối, v.v. Tôi có thể tin tưởng rằng truy vấn này sẽ cho tôi câu trả lời chính xác hay có một số tham số mà trước tiên tôi cần kiểm tra không? Máy chủ SQL 2008 R2:

 SELECT t.Name AS Tabelname, p.rows AS NoOfRows, MAX(us.last_user_lookup) AS LastUsed, t.create_date AS CreatedDate
FROM sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
LEFT JOIN --A lot of the tables did not have any records in this table
    sys.dm_db_index_usage_stats as us ON t.OBJECT_ID = us.OBJECT_ID
GROUP BY t.Name, p.rows, create_date
ORDER BY MAX(us.last_user_lookup) DESC

Câu trả lời:


15

Không.

Khung sys.dm_db_index_usage_statnhìn chỉ phản ánh dữ liệu kể từ lần khởi động cơ sở dữ liệu cuối cùng (lần khởi động cuối cùng hoặc lần cuối DB được đưa trực tuyến). Hơn nữa, các mục có thể xóa dưới áp lực bộ nhớ. Nó sẽ cho kết quả dương tính chính xác (nếu một bảng có số liệu thống kê khác không thì nó được sử dụng)) nhưng có thể cho kết quả âm tính giả (việc sử dụng 0 trong số liệu thống kê có thể không phản ánh mức sử dụng thực tế). Ngoài ra, có nhiều hệ thống chỉ sử dụng một số bảng nhất định mỗi tuần, một lần mỗi tháng hoặc thậm chí một lần mỗi năm.


3

Đây là một lý do nữa khiến bạn không thể tin tưởng một cách mù quáng vào DMV sys.dm_index_usage_stats. sys.dm_db_index_usage_stats không được cập nhật sau khi chỉ mục được sử dụng cho chỉ số thống kê được liên kết với các cột được lập chỉ mục. Paul đã cho thấy điều này trong liên kết của mình.

Những gì sys.dm_index_usage_stats DMV không cho bạn biết

Bạn cũng muốn đọc

Bài viết này về chỉ số sử dụng chỉ số DMV

Hơn nữa IMO Tôi không nghĩ bằng cách sử dụng DMV, có cách HOÀN HẢO để tìm ra khi nào bảng được sử dụng lần cuối. Tôi tin rằng sử dụng theo dõi Profiler hoặc theo dõi sự kiện mở rộng sẽ là lựa chọn tốt hơn. Mặc dù profiler có thể gây ra tải nhưng theo dõi phía máy chủ là một lựa chọn tốt.

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.