Da min kommentar så ud til at give det rigtige svar, besluttede jeg at flytte den til et fuldt svar for eftertiden i stackoverflow-ånden.
Dit problem ser ud til at være forårsaget af SQL Servers Parameter Sniffing .For at forhindre det, skal du blot tildele dine indkommende parameterværdier til andre variabler, der er erklæret øverst på din SP.
Eksempel:
CREATE PROCEDURE dbo.MyProcedure
(
@Param1 INT
)
AS
declare @MyParam1 INT
set @MyParam1 = @Param1
SELECT * FROM dbo.MyTable WHERE ColumnName = @MyParam1
GO
Jeg kopierede disse oplysninger fra eggheadcafe.com .
Edit:Ifølge Johann Strydoms kommentar er her en anden mulighed:Optimer parameterdrevne forespørgsler med SQL Server OPTIMER TIL tip .