Trước khi chạy kiểm tra hiệu năng / đường cơ sở cho một ứng dụng sử dụng SQL Server, tôi muốn có thể đặt phiên bản ở trạng thái "sạch" mà không cần khởi động lại phiên bản. Có những bước tôi có xu hướng làm theo, nhưng tôi muốn xây dựng một danh sách dứt khoát theo đúng trình tự và không có các bước dư thừa.
Danh sách các bước này có hoàn thành việc đặt SQL Server ở trạng thái "sạch" không?
Là trình tự hợp lý / chính xác?
Có bất kỳ bước dư thừa?
CHECKPOINT -- Write all dirty pages
DBCC DROPCLEANBUFFERS -- All should be clean after checkpoint?
DBCC FREEPROCCACHE -- Clear the plan cache
DBCC FREESYSTEMCACHE -- Is this necessary after FREEPROCCACHE?
DBCC FREESESSIONCACHE -- May not be necessary if distributed queries aren't used, but want to catch all scenarios
EXEC SP_UPDATESTATS -- Refresh stats
'BEGIN TESTING!'
DROPCLEANBUFFERS
tốt cho thử nghiệm nhưng không phải lúc nào cũng chính xác. Nếu bạn đang tham khảo một bảng có dung lượng lớn, rất có thể bạn sẽ luôn có các trang trong bộ nhớ và thời gian IO sẽ không phải là một yếu tố lớn trong truy vấn đó. Bạn có thể đặt nhiều trọng lượng hơn vào IO hơn là thực tế trong trường hợp đó.