sql >> Database teknologi >  >> RDS >> Sqlserver

Forespørgsel kører hurtigt, men kører langsomt i lagret procedure

OK, vi har haft lignende problemer som dette før.

Den måde, vi fiksede dette på, var ved at lave lokale parametre inde i SP, sådan at

DECLARE @LOCAL_Contract_ID int, 
        @LOCAL_dt_From smalldatetime, 
        @LOCAL_dt_To smalldatetime, 
        @LOCAL_Last_Run_Date datetime

SELECT  @LOCAL_Contract_ID = @Contract_ID, 
        @LOCAL_dt_From = @dt_From, 
        @LOCAL_dt_To = @dt_To, 
        @LOCAL_Last_Run_Date = @Last_Run_Date

Vi bruger så de lokale parametre inde i SP i stedet for de parametre, der blev sendt ind.

Dette løste typisk problemet for os.

Vi mener, at dette skyldes parametersniffing, men har ikke noget bevis, undskyld... X-)

EDIT:

Tag et kig på Forskellige tilgange for at rette SQL Server Parameter Sniffing for nogle indsigtsfulde eksempler, forklaringer og rettelser.



  1. TIL OPDATERING v/s LÅS I DELINGSTILSTAND:Tillad samtidige tråde at læse opdateret tilstandsværdi for låst række

  2. SQL Server GUID sorteringsalgoritme. Hvorfor?

  3. Informationssystemer, data og information

  4. Er det muligt at få flere værdier fra en underforespørgsel?