sql >> Databasteknik >  >> RDS >> Sqlserver

Att köra lagrad proc från DotNet tar mycket lång tid men i SSMS är det omedelbart

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 .



  1. Öka fältet i mysql-databasen med hjälp av codeigniters aktiva postsyntax

  2. Jämför arrayer för likhet, ignorera ordningen av element

  3. Hur ansluter jag till SQL Server via sqlalchemy med Windows-autentisering?

  4. Det går inte att ansluta till mysql på digitalocean med workbench över ssh