Eftersom min kommentar verkade ge det korrekta svaret, bestämde jag mig för att flytta den till ett fullständigt svar för eftervärlden i stackoverflows anda.
Ditt problem verkar orsakas av SQL Servers parametersniffning .För att förhindra det, tilldela bara dina inkommande parametervärden till andra variabler som deklareras högst upp på din SP.
Se den här trevliga artikeln om det
Exempel:
CREATE PROCEDURE dbo.MyProcedure
(
@Param1 INT
)
AS
declare @MyParam1 INT
set @MyParam1 = @Param1
SELECT * FROM dbo.MyTable WHERE ColumnName = @MyParam1
GO
Jag kopierade denna information från eggheadcafe.com .
Edit:Enligt Johann Strydoms kommentar, här är ett annat alternativ:Optimera parameterdrivna frågor med SQL Server OPTIMERA FÖR tips .