Ba bước rất nhanh để giúp bạn bắt đầu:
1)
USE DatabaseName
SELECT [TableName] = OBJECT_NAME(object_id),
last_user_update, last_user_seek, last_user_scan, last_user_lookup
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID('DatabaseName')
Sẽ cho bạn biết lần cuối mỗi chỉ mục được sử dụng, bao gồm cả chỉ mục được nhóm. Vì vậy, ít nhất cung cấp cho bạn một hương vị mà bảng nào đang được truy cập (và bảng nào không.)
2) Bật phiên Sự kiện mở rộng (hoặc theo dõi Hồ sơ phía máy chủ nếu bạn đang chạy tiền SQL 2012) trong khoảng một giờ trong khi ứng dụng đang được sử dụng. Bạn cũng có thể yêu cầu người dùng thực hiện các hành động khác nhau trong ứng dụng theo một thứ tự cụ thể để bạn có thể tương quan với dấu vết / phiên.
Một gợi ý hữu ích: nếu bạn có thể sửa đổi chuỗi kết nối mà ứng dụng sử dụng, hãy thêm "; Tên ứng dụng = AppNameGoesHere" để bạn có thể chạy lọc theo dõi trên Tên ứng dụng cụ thể đó. Thực hành tốt dù sao đi nữa.
3) Nhận phiên bản của ứng dụng hoạt động trên máy chủ không sản xuất. Phát triển danh sách các thử nghiệm dựa trên hành vi cho ứng dụng ("Khi người dùng nhấp vào nút Mục mới, nó sẽ tạo một mục mới cho người dùng đó", v.v.) Bắt đầu xóa các đối tượng mà bạn cảm thấy không có liên quan đến các thử nghiệm bằng cách đổi tên chúng (Tôi sử dụng định dạng như objectName_DEPRECATED_YYYYMMDD - với ngày là ngày tôi dự định thực sự xóa nó.) Hoàn nguyên tất cả các bài kiểm tra của bạn.
Thông qua sự kết hợp của phiên Sự kiện mở rộng, DMV sử dụng chỉ mục và xóa mềm, bạn sẽ có thể xác định các đối tượng chính đang được ứng dụng sử dụng và có sự đồng thuận chung về đối tượng nào làm gì.
Chúc may mắn!