2009-08-17 72 views
8

Xin chào các lập trình viên đồng nghiệp. Tôi có một truy vấn SQL Server 2005 đó là mất một thời gian dài để xử lý lần đầu tiên thông qua. Sau lần chạy đầu tiên, truy vấn hoạt động nhanh hơn nhiều. Nó đi từ một phút đến một giây.SQL Server 2005 Làm thế nào để bạn xóa một kế hoạch thực thi truy vấn

Tôi biết rằng SQL Server đang lưu vào bộ nhớ cache một kế hoạch thực hiện (có phải là thuật ngữ đúng không?). Những gì tôi muốn làm là làm rõ kế hoạch thực hiện này để tôi có thể tái tạo vấn đề tốt hơn. Tôi đang cố điều chỉnh truy vấn.

Có ai biết nếu điều này có thể và cách thực hiện?

Cảm ơn trước

Trả lời

16

Nếu bạn muốn xóa nó thì:

DBCC FreeProcCache 
DBCC DropCleanbuffers 

Nếu bạn chỉ muốn buộc một biên dịch lại truy vấn mỗi thời gian, sau đó thêm một gợi ý truy vấn để kết thúc truy vấn:

OPTION (RECOMPILE) 
1

DBCC FREEPROCCACHE

3

Đây là những gì tôi chạy khi nào tôi muốn tách r them

DBCC freeproccache 
DBCC dropcleanbuffers 
go 

Nếu tôi kiểm tra hiệu suất truy vấn, tôi thường chạy nó ở đầu truy vấn để mỗi khi chạy nó với bộ nhớ cache rõ ràng.

2

Được cảnh báo: đôi khi truy vấn chạy nhanh hơn lần thứ hai vì máy chủ đã thực hiện đĩa IO và vẫn có bảng trong RAM. Xem xét xem xét chi phí IO trong kế hoạch thực hiện.

Các vấn đề liên quan