Protože se zdálo, že můj komentář poskytuje správnou odpověď, rozhodl jsem se jej přesunout do úplné odpovědi pro potomky v duchu stackoverflow.
Zdá se, že váš problém je způsoben Sniffing parametrů serveru SQL Server .Abyste tomu zabránili, jednoduše přiřaďte hodnoty vašich příchozích parametrů jiným proměnným deklarovaným přímo v horní části vašeho SP.
Podívejte se na tento pěkný článek
Příklad:
CREATE PROCEDURE dbo.MyProcedure
(
@Param1 INT
)
AS
declare @MyParam1 INT
set @MyParam1 = @Param1
SELECT * FROM dbo.MyTable WHERE ColumnName = @MyParam1
GO
Tyto informace jsem zkopíroval z eggheadcafe.com .
Edit:Podle komentáře Johanna Strydoma je zde další možnost:Optimalizace dotazů řízených parametry pomocí serveru SQL OPTIMALIZACE PRO Hint .