Xóa buffer của cơ sở dữ liệu trong MS SQL Server
Khi bạn dùng SQL Server Profiler để đo performance của database bạn sẽ gặp trường hợp một SQL statement chạy n lần thì thời gian thực thi sẽ giảm dần. Ví dụ: Select * from Employees Lần 1, là 130 millisecond Lần 2, là 110 millisecond Lần 3, là 50 millisecond … Lần n + 1, sẽ tiến ...
Khi bạn dùng SQL Server Profiler để đo performance của database bạn sẽ gặp trường hợp một SQL statement chạy n lần thì thời gian thực thi sẽ giảm dần. Ví dụ:
Select * from Employees
Lần 1, là 130 millisecond
Lần 2, là 110 millisecond
Lần 3, là 50 millisecond
…
Lần n + 1, sẽ tiến dần về 0 millisecond
Câu hỏi đặt ra, lý do tại sao cùng một câu query mà mỗi lần thực thi lặp lại thì thời gian giảm dần về không?
Bởi vì MS SQL Server hỗ trợ cơ chế lưu trữ những câu query đã chạy (thực thi) rồi, để lần sau câu query đó được chạy nhanh hơn.
Vì thế khi bạn sử dụng SQL Server Profiler để đo performance của database bạn nên làm sạch buffer bằng cách sử dụng câu lệnh bên dưới để xóa sạch hết bộ nhớ tạm đó.
Cú pháp:
USE <YOURDATABASENAME>;
GO
CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO
Ví dụ minh họa: giả sử bạn cần xóa buffer của cơ sở dữ liệu tên MASTER
USE MASTER;
GO
CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO