Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

A consulta é executada rapidamente, mas é lenta no procedimento armazenado


OK, já tivemos problemas semelhantes como este antes.

A maneira como corrigimos isso foi fazendo parâmetros locais dentro do 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

Em seguida, usamos os parâmetros locais dentro do SP em vez dos parâmetros que foram passados.

Isso normalmente corrigiu o problema para nós.

Acreditamos que isso seja devido ao sniffing de parâmetros, mas não temos nenhuma prova, desculpe... X-)

EDITAR:

Dê uma olhada em Diferentes abordagens para corrigir a detecção de parâmetros do SQL Server para alguns exemplos perspicazes, explicações e correções.