传递参数时where子句中的SQL查询优化

时间:2014-09-26 06:34:30

标签: sql sql-server query-optimization left-join

我有这个SQL查询:

    SELECT 
        @ComplianceCountAtAssociateDeptLevel = COUNT(FILUP.[FileUploadId])
        ,@TotalCountAtAssociateDeptLevel     = COUNT(AD.[Associate_ID])
    FROM 
        [CentralRepository].[dbo].[vw_CentralRepository_Associate_Details] AD WITH(NOLOCK)
        LEFT  JOIN 
                 (select [FileUploadId],[AssociateID] from [CentralRepository].[dbo].   [vw_CentralRepository_FileUploadDetails]
                 where Fk_AppTemplateId =2  OR Fk_AppTemplateId=1 ) FILUP 
    ON AD.[Associate_ID] = FILUP.[AssociateID] 
    WHERE 
        AD.[Dept_ID] = 'SC00002'

它在5秒内获取结果。

但是,在将Dept_ID参数声明为:

时,相同的代码需要很长时间
declare @Dept varchar(30) = 'SC00002',

并将其传递给WHERE子句,如下所示:

 WHERE
    AD.[Dept_ID] = @Dept 

请帮帮我。

0 个答案:

没有答案