Có bất kỳ ai trong số bạn có kinh nghiệm sau đây, và bạn đã tìm thấy một giải pháp:
Một phần lớn của back-end trang web của chúng tôi là MS SQL Server 2005. Mỗi tuần hoặc hai tuần trang web bắt đầu chạy chậm hơn - và tôi thấy các truy vấn mất nhiều thời gian hơn và lâu hơn để hoàn thành trong SQL. Tôi có một truy vấn mà tôi muốn sử dụng:
USE master
select text,wait_time,blocking_session_id AS "Block",
percent_complete, * from sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 order by start_time asc
Điều này khá hữu ích ... nó cung cấp một ảnh chụp nhanh tất cả mọi thứ đang chạy ngay tại thời điểm đó đối với máy chủ SQL của bạn. Điều tuyệt vời là ngay cả khi CPU của bạn được chốt ở mức 100% vì một số lý do và Activity Monitor không chịu tải (Tôi chắc chắn một số bạn đã ở đó) truy vấn này vẫn trả về và bạn có thể thấy truy vấn nào đang giết DB của bạn.
Khi tôi chạy cái này hoặc Trình giám sát hoạt động trong thời gian SQL bắt đầu chạy chậm, tôi không thấy bất kỳ truy vấn cụ thể nào gây ra sự cố - chúng TẤT CẢ chạy chậm hơn trên bảng. Nếu tôi khởi động lại Dịch vụ MS SQL thì mọi thứ đều ổn, nó sẽ tăng tốc - trong một hoặc hai tuần cho đến khi nó xảy ra lần nữa.
Không có gì tôi có thể nghĩ đã thay đổi, nhưng điều này mới chỉ bắt đầu vài tháng trước ... Ý tưởng?
--Thêm
Xin lưu ý rằng khi cơ sở dữ liệu này chậm xảy ra, không có vấn đề gì nếu chúng ta nhận được 100 nghìn lượt xem trang một giờ (thời gian bận rộn hơn trong ngày) hoặc 10 nghìn lượt xem trang một giờ (thời gian chậm) tất cả các truy vấn mất nhiều thời gian hơn bình thường. Máy chủ không thực sự bị căng thẳng - CPU không cao, việc sử dụng đĩa dường như không thể kiểm soát được ... nó có cảm giác như bị phân mảnh chỉ mục hoặc một cái gì đó tương tự nhưng dường như không phải là trường hợp
Theo như kết quả dán của truy vấn tôi đã dán ở trên, tôi thực sự không thể làm điều đó. Truy vấn trên liệt kê thông tin đăng nhập của người dùng thực hiện tác vụ, toàn bộ truy vấn, v.v. và tôi thực sự không muốn đưa ra tên của cơ sở dữ liệu, bảng, cột và thông tin đăng nhập trực tuyến của mình :) ... Tôi có thể cho bạn biết rằng các truy vấn đang chạy tại thời điểm đó là bình thường, các truy vấn tiêu chuẩn cho trang web của chúng tôi chạy mọi lúc, không có gì ngoài định mức.
- Ngày 24
Đã khoảng hai tuần kể từ lần khởi động lại cuối cùng. Tôi đã thực hiện một số thay đổi: Tôi đã tìm thấy một vài truy vấn trong đó chúng tôi đang sử dụng rất nhiều bảng tạm thời hoàn toàn không cần thiết và các nhà phát triển của chúng tôi thay đổi cách họ thực hiện nó. Tôi đã điều chỉnh kích thước của một số cơ sở dữ liệu đang phát triển liên tục (chậm nhưng chắc chắn) thành kích thước thông minh cho sự phát triển của chúng. Tôi đã điều chỉnh cài đặt tự động phát triển để mọi thứ trở nên thông minh hơn (chúng được đặt TẤT CẢ để tăng trưởng 1MB). Cuối cùng tôi đã dọn sạch MSDB một chút. Chúng tôi đăng nhập vận chuyển và thực sự không cần phải giữ các điểm dự phòng hàng năm và hàng năm, tôi đã viết một số tập lệnh giữ điều này chỉ trong một vài tháng. Tôi sẽ tiếp tục cập nhật chủ đề này, vì còn quá sớm để biết vấn đề đã được giải quyết chưa.