Thực ra, có một mẹo nhỏ gọn gàng để có được những gì bạn đang tìm kiếm. Vấn đề/câu hỏi, là làm thế nào để làm cho SQL Server "tạm thời" từ bỏ bộ nhớ nó có thể không agressively cần, sau đó để cho nó reconsume nó theo yêu cầu.
Để làm điều này, hãy chạy lệnh sau:
EXEC sys.sp_configure N'show advanced options', N'1'
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'max server memory (MB)', N'{low water mark}'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'max server memory (MB)', N'{High water mark}'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'show advanced options', N'0'
RECONFIGURE WITH OVERRIDE
GO
Đặt các giá trị của riêng bạn cho {dấu nước thấp} và {dấu nước cao} (tính bằng MB).
Điều này sẽ buộc bộ nhớ giảm xuống mức tối thiểu, sau đó mở lại ngay nếu SQL Server cần/muốn.
Điều duy nhất còn lại để làm, là lập biểu cho tập lệnh chạy theo định kỳ.
Đề xuất:
Trường hợp SQL Server không được sử dụng nhiều, hãy thử chạy 6 giờ một cách tự động. Nếu nó được sử dụng nhiều, hãy chạy 24 giờ một lần (nói vào giữa đêm hoặc ngay trước ngày bắt đầu). Việc sử dụng của bạn sẽ thay đổi.
Nguồn
2011-01-07 19:49:38
Bạn đo những số liệu này như thế nào? Ghi nhớ rằng trình quản lý tác vụ có thể cung cấp các số liệu gây hiểu nhầm (tôi luôn lựa chọn perfmon và xem các byte riêng/ảo) –
Tôi đang theo dõi sql sever bằng cách sử dụng trình quản lý tác vụ và ứng dụng dotnet riêng biệt sử dụng lớp PerformanceCounter –