Добре, и преди сме имали подобни проблеми.
Начинът, по който поправихме това, беше като направихме локални параметри вътре в SP, като това
DECLARE @LOCAL_Contract_ID int,
@LOCAL_dt_From smalldatetime,
@LOCAL_dt_To smalldatetime,
@LOCAL_Last_Run_Date datetime
SELECT @LOCAL_Contract_ID = @Contract_ID,
@LOCAL_dt_From = @dt_From,
@LOCAL_dt_To = @dt_To,
@LOCAL_Last_Run_Date = @Last_Run_Date
След това използваме локалните параметри вътре в SP вместо параметрите, които са били предадени.
Това обикновено решаваше проблема за нас.
Вярваме, че това се дължи на подслушване на параметри, но нямаме никакви доказателства, за съжаление... X-)
РЕДАКТИРАНЕ:
Разгледайте Различни подходи за коригиране на снифинг на параметри на SQL Server за някои проницателни примери, обяснения и поправки.