sql >> Base de Datos >  >> RDS >> Sqlserver

La consulta se ejecuta rápido, pero se ejecuta lentamente en el procedimiento almacenado

Bien, hemos tenido problemas similares como este antes.

La forma en que solucionamos esto fue creando parámetros locales dentro del SP, de modo que

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

Luego usamos los parámetros locales dentro del SP en lugar de los parámetros que se pasaron.

Por lo general, esto solucionó el problema para nosotros.

Creemos que esto se debe a la detección de parámetros, pero no tenemos ninguna prueba, lo siento... X-)

EDITAR:

Eche un vistazo a Diferentes enfoques para corregir el rastreo de parámetros de SQL Server para ver algunos ejemplos interesantes, explicaciones y correcciones.