SQL Server: DBCC để làm sạch bộ nhớ cache và làm sạch bộ đệm cho quy trình đã lưu trữ

2022-07-05 19:49:37

Tại sao chúng ta yêu cầu xóa bộ nhớ cache và bộ đệm trước khi thực hiện một thủ tục được lưu trữ trong SQL Server?
Đôi khi nó cần xóa bộ đệm và bộ đệm để đo khoảng thời gian chính xác giữa các lần thực thi.
SQL Server cung cấp hai lệnh DBCC để xóa bộ đệm và bộ đệm.

DBCC FREEPROCCACHE :

Bạn có thể sử dụng lệnh DBCC ở trên để xóa bộ nhớ cache của Thủ tục đã lưu trữ. Khi bạn sử dụng lệnh này, nó sẽ xóa tất cả các kế hoạch truy vấn cũ và biên dịch lại tất cả các câu lệnh của bạn.

Nó xóa tất cả các phần tử khỏi bộ nhớ cache của kế hoạch và buộc SQL Server phải biên dịch lại. Nó không xóa bất kỳ thống kê thực thi nào cho thủ tục được lưu trữ đã biên dịch.

Bạn nên sử dụng lệnh này một cách cẩn thận vì mỗi khi nó tạo một kế hoạch mới cho cùng một truy vấn, do đó nó có thể làm giảm hiệu suất truy vấn của bạn. Nhưng nó được yêu cầu trong quá trình kiểm tra hiệu suất vì bạn không thể đo thời gian thực hiện truy vấn mà không xóa dữ liệu kế hoạch khỏi bộ nhớ cache.

DBCC DROPCLEANBUFFERS :

Sử dụng lệnh DBCC ở trên, bạn có thể xóa tất cả các bộ đệm sạch khỏi vùng đệm. Trong quá trình kiểm tra hiệu suất của thủ tục được lưu trữ của bạn, lệnh DBCC này rất hữu ích để xóa tất cả dữ liệu bộ đệm khỏi vùng đệm.

Nó cũng đảm bảo rằng tất cả dữ liệu không đến từ bộ đệm và tìm nạp từ các trang dữ liệu vật lý để bạn có thể đo lường hiệu suất thực giữa các lần thực thi.

Xem thêm:


Chia sẻ: