Hơn một năm sau tôi muốn cho mọi người biết kinh nghiệm của tôi và kết quả cuối cùng của câu hỏi / chủ đề này.
Tôi bắt đầu tự mình tạo ra mọi thứ. Ban đầu, tôi đã theo dõi Điều thu thập và lưu trữ dữ liệu bộ đếm hiệu suất SQL Server lịch sử với CMV của Tim Ford để lấy thứ gì đó và mở rộng dữ liệu này với bất kỳ Dữ liệu nào tôi muốn thu thập. Vì vậy, mỗi ngày một lần tôi chạy một số thủ tục được lưu trữ trên mỗi Máy chủ Sql thu thập một số thông tin cụ thể từ DMV và lưu trữ kết quả trên Máy chủ cục bộ bên trong cơ sở dữ liệu. Điều này bao gồm sử dụng chỉ mục, chỉ mục bị thiếu, các mục nhật ký cụ thể như autogrow, cài đặt máy chủ, cài đặt cơ sở dữ liệu ứng dụng, phân mảnh, thực thi công việc, thông tin nhật ký giao dịch, thông tin tệp, số liệu thống kê chờ và hơn thế nữa.
Ngoài ra, tôi đã thêm các kết quả thực thi quy định sp_blitz của Brent Ozar vào kho lưu trữ này để thu thập các chỉ dẫn có giá trị bổ sung để làm việc, cải thiện và báo cáo.
Tất cả dữ liệu được thu thập từ đó vào Máy chủ Sql theo dõi chuyên dụng và bằng cách này, tôi tạo một cửa hàng được đóng gói để thực hiện thông tin liên quan về tất cả các máy chủ của mình và sử dụng làm cơ sở để điều tra và báo cáo.
Sau đó, tôi đã tạo các bảng excel và báo cáo sử dụng các dịch vụ báo cáo để phân tích và giải thích. Một số mẫu:
Ngoài ra, tôi đã cấu hình một số giám sát bộ đếm hiệu suất bằng TYPEPERF lấy cảm hứng từ bài viết " Thu thập dữ liệu hiệu suất vào bảng máy chủ SQL " của Fedor Georgiev.
Từ cá thể Giám sát SQL của tôi, tôi kích hoạt typeperf để chạy và thu thập số lượng mẫu có thể định cấu hình với một giá trị mẫu có thể định cấu hình và lưu trữ các kết quả trong db giám sát trung tâm của tôi.
Điều này cho phép tôi quan sát các giá trị hiệu suất dài hạn, mẫu:
Sau một thời gian sử dụng điều này để thu thập thông tin cơ bản, nó đã điều chỉnh ra rằng có khá nhiều công việc bảo trì phải bỏ ra để xem xét các công việc thất bại, các thủ tục khử lỗi (ví dụ trong trường hợp DB bị ngoại tuyến, một số tập lệnh thất bại), duy trì cài đặt sau khi máy chủ được thay thế ...
Ngoài ra, cơ sở dữ liệu thu thập tất cả các bản ghi cần bảo trì và điều chỉnh hiệu suất, vì vậy công việc bổ sung xuất hiện để giữ dữ liệu hữu ích ...
Điều cuối cùng hoàn toàn thiếu là khả năng nhìn vào những thứ xảy ra trực tiếp. Trong trường hợp tốt nhất, tôi sẽ có thể nói những gì có thể xảy ra vào ngày hôm sau sau khi các bộ thu thập dữ liệu đã chạy. Ngoài ra tất cả các chi tiết bị thiếu. Tôi không có quyền truy cập vào biểu đồ khóa chết, tôi không thể xem các gói truy vấn của các truy vấn đang chạy trong khung thời gian đáng ngờ ....
Tất cả điều đó khiến tôi sẽ tính phí quản lý để chi tiền cho một giải pháp chuyên nghiệp mà tôi không thể tự tạo ra.
Lựa chọn cuối cùng là mua SentryOne vì so với những người khác, nó rất thuyết phục và cung cấp nhiều thông tin cần thiết để xác định điểm đau của chúng tôi.
Như một kết luận cuối cùng, tôi sẽ khuyên bất cứ ai tìm kiếm câu trả lời cho câu hỏi tương tự đừng cố gắng tự tạo mọi thứ miễn là bạn không có một môi trường nhỏ và cơ bản lành mạnh. Nếu bạn có một vài hệ thống và nhiều vấn đề, tốt nhất hãy tìm giải pháp chuyên nghiệp và sử dụng sự trợ giúp của nhà cung cấp về các vấn đề của bạn thay vì tốn nhiều thời gian và tiền bạc để tạo ra một số ít hữu ích. Tuy nhiên, tuyến đường này vẫn rất thú vị và khiến tôi học được nhiều điều mà tôi không muốn bỏ lỡ.
Tôi hy vọng bạn thấy điều này hữu ích khi bạn gặp vấn đề này.
EDIT ngày 20 tháng 4 năm 2017:
Brent Ozar gần đây đã đăng bài viết sau đây trên facebook, đây là một cách tiếp cận tương tự được thực hiện bởi Nhóm SQL Tiger: https://blogs.msdn.microsoft.com/sql_server_team/sql-server-performance-baselining -reports-Unleashed-for-Enterprise-giám sát /