Thử che thông số đầu vào.
Tôi đoán bản biên dịch lại không hoạt động do mặc định được chỉ định ( CHỈNH SỬA :Hoặc tham số được gửi trong lần gọi đầu tiên) được đánh hơi tại thời điểm biên dịch. Vì vậy, biên dịch lại không có tác dụng.
Tôi đã thấy sự khác biệt lớn giữa các kế hoạch ước tính chỉ đơn giản bằng cách thay đổi mặc định từ giả sử, không thành NULL hoặc không có.
ALTER PROCEDURE [usp_debug_mightwork]
@DATA_DT_ID AS int = 20081130
AS
BEGIN
DECLARE @IDATA_DT_ID AS int
SET @IDATA_DT_ID = @DATA_DT_ID
-- Stuff here that depends on IDATA_DT_ID
END
Tôi nghĩ rằng bài viết này giải thích ...
CHỈNH SỬA:
Liên kết mới về các tham số và kế hoạch truy vấn . Nó vẫn đánh giá tham số xem mặc định có được chỉ định hay không.
Loại bài viết liên quan về hằng số và kế hoạch