OK, ähnliche Probleme hatten wir schon einmal.
Wir haben dies behoben, indem wir lokale Parameter innerhalb des SP erstellt haben, so dass
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
Wir verwenden dann die lokalen Parameter innerhalb des SP und nicht die übergebenen Parameter.
Dadurch wurde das Problem in der Regel für uns behoben.
Wir glauben, dass dies auf Parameter-Sniffing zurückzuführen ist, haben aber keinen Beweis, sorry ... X-)
BEARBEITEN:
Sehen Sie sich Different Approaches an um das SQL Server-Parameter-Sniffing zu korrigieren für einige aufschlussreiche Beispiele, Erklärungen und Korrekturen.