sql >> Databáze >  >> RDS >> Sqlserver

Spuštění uloženého proc z DotNetu trvá velmi dlouho, ale v SSMS je okamžité

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 .



  1. Operátor MINUS v MySQL?

  2. Dotaz se dvěma časovými razítky nefunguje

  3. Vytvořte ER diagram v pgAdmin

  4. Měla by mít každá tabulka uživatelů seskupený index?