Hôm nay, tôi gặp sự cố với thời gian thủ tục được lưu trữ (mất hơn 30 giây) khi nó được chạy từ trang web ASP.NET, nhưng được thực thi nhanh khi chạy từ SSMS (mất 5 giây).
Sau khi nghi ngờ tham số đánh hơi là thủ phạm, tôi che dấu các tham số đầu vào và truy vấn được thực hiện nhanh hơn.
Câu hỏi của tôi là: tại sao điều này xảy ra?
Hệ thống này đã được sản xuất hơn 5 năm và đây là lần đầu tiên chúng tôi thấy bất cứ điều gì như thế này trên các thủ tục được lưu trữ của chúng tôi. Đây có phải là "hao mòn cơ sở dữ liệu" không?
Chúng tôi đã giải quyết vấn đề, vì vậy nó không phải là vấn đề lớn, nhưng tôi chỉ tò mò về lý do tại sao điều này xảy ra.
DROP
/ CREATE PROC
.sql của tôi , tôi thường bao gồm một tệp EXEC
cho sproc, với các tham số thực tế. Do đó, bất cứ khi nào sproc được tạo lại, nó sẽ được chạy một lần với các thông số tốt và (nên) có được một kế hoạch thực hiện tốt.